-
公开(公告)号:US09575864B2
公开(公告)日:2017-02-21
申请号:US14453457
申请日:2014-08-06
Applicant: Microsoft Corporation
Inventor: Joe Chau , Jay Krell , Allan Murphy , Danny Chen , Hoi Vo , Steven Pratschner , Galen Hunt
CPC classification number: G06F11/3409 , G06F11/3003 , G06F11/3093 , G06F11/3419 , G06F11/3466 , G06F11/36 , G06F11/3644 , G06F2201/81 , G06F2201/835 , G06F2201/865
Abstract: Methods for dynamically instrumenting a program while the program is executing are described. In some embodiments, profiling hooks may be selectively inserted into and removed from a program while the program is running. The hooks may gather profiling information, such as the frequency and duration of function calls, for a selected set of functions. The hooks may be inserted into the program without requiring a special build or modifications to the binary by modifying machine-level instructions for the program stored in system memory. The ability to selectively insert instrumentation into the machine-level instructions stored in the system memory allows a set of functions to be selected during execution of the program and hooks for each function of the set of functions to be dynamically inserted or removed during execution of the program to precisely capture profiling information for the set of functions.
Abstract translation: 描述在程序执行时动态调试程序的方法。 在一些实施例中,在程序运行时,轮廓钩可被选择性地插入到程序中并从程序中移除。 钩子可以收集关于所选择的一组功能的分析信息,例如功能调用的频率和持续时间。 可以通过修改存储在系统存储器中的程序的机器级指令,将钩子插入程序中,而不需要对二进制文件进行特殊构建或修改。 将仪器选择性地插入到存储在系统存储器中的机器级指令中的能力允许在执行程序期间选择一组功能,并且对于在执行期间动态插入或移除的功能集的每个功能的钩子 程序来精确地捕获一组功能的分析信息。
-
公开(公告)号:US20150347263A1
公开(公告)日:2015-12-03
申请号:US14453457
申请日:2014-08-06
Applicant: Microsoft Corporation
Inventor: Joe Chau , Jay Krell , Allan Murphy , Danny Chen , Hoi Vo , Steven Pratschner , Galen Hunt
IPC: G06F11/34
CPC classification number: G06F11/3409 , G06F11/3003 , G06F11/3093 , G06F11/3419 , G06F11/3466 , G06F11/36 , G06F11/3644 , G06F2201/81 , G06F2201/835 , G06F2201/865
Abstract: Methods for dynamically instrumenting a program while the program is executing are described. In some embodiments, profiling hooks may be selectively inserted into and removed from a program while the program is running. The hooks may gather profiling information, such as the frequency and duration of function calls, for a selected set of functions. The hooks may be inserted into the program without requiring a special build or modifications to the binary by modifying machine-level instructions for the program stored in system memory. The ability to selectively insert instrumentation into the machine-level instructions stored in the system memory allows a set of functions to be selected during execution of the program and hooks for each function of the set of functions to be dynamically inserted or removed during execution of the program to precisely capture profiling information for the set of functions.
Abstract translation: 描述在程序执行时动态调试程序的方法。 在一些实施例中,在程序运行时,轮廓钩可被选择性地插入到程序中并从程序中移除。 钩子可以收集关于所选择的一组功能的分析信息,例如功能调用的频率和持续时间。 可以通过修改存储在系统存储器中的程序的机器级指令,将钩子插入程序中,而不需要对二进制进行特殊构建或修改。 将仪器选择性地插入到存储在系统存储器中的机器级指令中的能力允许在执行程序期间选择一组功能,并且对于在执行期间动态插入或移除的功能集的每个功能的钩子 程序来精确地捕获一组功能的分析信息。
-