Method and apparatus for hybrid stack walking

    公开(公告)号:US20060212844A1

    公开(公告)日:2006-09-21

    申请号:US11083843

    申请日:2005-03-18

    IPC分类号: G06F9/44

    CPC分类号: G06F9/45533

    摘要: In one embodiment, a method and apparatus for stack walking a call stack associated with mixed code, by interleaving a native stack walking process with a managed stack walking process. Mixed code comprises at least one managed instruction and at least one native instruction, and the call stack comprises at least one managed frame and at least one native frame. The managed frames being associated with the managed instructions, and the native frames being associated with native instructions. The method comprises acts of performing a managed stack walk on the call stack, a native stack walk on native frames of the call stack. In a further embodiment, handling indirect jumps during a native stack walk, and in another embodiment, detecting validity of a memory address.

    USER DIRECTED PROFILING
    2.
    发明申请
    USER DIRECTED PROFILING 审中-公开
    用户指导的配置文件

    公开(公告)号:US20140068569A1

    公开(公告)日:2014-03-06

    申请号:US13600259

    申请日:2012-08-31

    IPC分类号: G06F9/44

    摘要: A user can control when data sampling takes place, what data is collected and where in the code the data sampling profiler is invoked. By identifying a section of user code to the profiler, the profiler is instructed to dynamically instrument the identified user code executing in a target application process. The instrumentation invokes the profiler before or after or both before and after the identified section of user code is executed. By identifying an entry point of a component or technology external to the user code, the profiler is instructed to dynamically instrument the external component so that data sampling is logged when the user code calls the entry point of the external component. The data sampling process can be monitored and the sampling rate can be dynamically adjusted.

    摘要翻译: 用户可以控制何时进行数据采样,收集哪些数据以及在代码中调用数据采样分析器。 通过识别分析器的一部分用户代码,指导分析器动态地对在目标应用程序中执行的所识别的用户代码进行仪器仪表。 仪器在执行用户代码的识别部分之前和之后或之前或之后调用分析器。 通过识别用户代码外部的组件或技术的入口点,指示分析器动态地对外部组件进行仪器调整,以便当用户代码调用外部组件的入口点时记录数据采样。 可以监控数据采样过程,并可以动态调整采样率。

    Cross session process action
    3.
    发明授权
    Cross session process action 有权
    跨会话过程动作

    公开(公告)号:US07801982B2

    公开(公告)日:2010-09-21

    申请号:US11396980

    申请日:2006-04-03

    IPC分类号: G06F15/16

    摘要: Cross session process actions such as diagnostics in which a diagnostic process running in one process attaches and performs diagnostics on a process running in another session. Upon determining that diagnosis is to be performed on a process of another session, diagnostic process uses an intermediary session to launch diagnostic processes in the target session. Thus, actions such as diagnostics can be initiated across sessions.

    摘要翻译: 跨会话过程动作,例如诊断,其中在一个进程中运行的诊断进程在另一个会话中运行的进程上附加并执行诊断。 在确定对另一会话的过程执行诊断时,诊断过程使用中间会话来在目标会话中启动诊断过程。 因此,可以跨会话启动诸如诊断的动作。

    Methods and apparatus for software profiling
    4.
    发明申请
    Methods and apparatus for software profiling 有权
    软件分析的方法和设备

    公开(公告)号:US20060265693A1

    公开(公告)日:2006-11-23

    申请号:US11134649

    申请日:2005-05-20

    申请人: Maxim Goldin

    发明人: Maxim Goldin

    IPC分类号: G06F9/44

    摘要: In one embodiment, a method is provided for use in a system which includes a target application, a profiler application and a debugging application, the profiler application being operative to attach to the target application and, upon attaching to the target application, performing operations to profile the target application, the debugging application being operative to monitor the target application. The method comprises attaching, by the profiler application, to the target application such that operations performed by the profiler application in profiling the target application are susceptible to monitoring by the debugging application. In one embodiment, the method further comprises generating helper code; transferring the helper code to the memory used by the target application; and causing the helper code to be executed from the memory used by the target application, wherein the helper code, when executed, causes the profiler agent library to be loaded to the memory used by the target application.

    摘要翻译: 在一个实施例中,提供了一种用于包括目标应用程序,分析器应用程序和调试应用程序的系统的方法,所述分析器应用程序可操作以附加到目标应用程序,并且在附接到目标应用程序时,执行操作 配置目标应用程序,调试应用程序可用于监视目标应用程序。 该方法包括通过分析器应用将目标应用程序附加到目标应用程序中,使得分析器应用程序在分析目标应用程序时执行的操作易受调试应用程序的监视。 在一个实施例中,该方法还包括产生辅助代码; 将帮助代码传送到目标应用程序使用的内存; 并且使得所述帮助代码从所述目标应用程序使用的所述存储器执行,其中所述帮助程序代码在被执行时使得所述分析器代理程序库被加载到所述目标应用程序所使用的存储器中。

    Cross session process action
    5.
    发明申请
    Cross session process action 有权
    跨会话过程动作

    公开(公告)号:US20070233856A1

    公开(公告)日:2007-10-04

    申请号:US11396980

    申请日:2006-04-03

    IPC分类号: G06F15/173

    摘要: Cross session process actions such as diagnostics in which a diagnostic process running in one process attaches and performs diagnostics on a process running in another session. Upon determining that diagnosis is to be performed on a process of another session, diagnostic process uses an intermediary session to launch diagnostic processes in the target session. Thus, actions such as diagnostics can be initiated across sessions.

    摘要翻译: 跨会话过程动作,例如诊断,其中在一个进程中运行的诊断进程在另一个会话中运行的进程上附加并执行诊断。 在确定对另一会话的过程执行诊断时,诊断过程使用中间会话来在目标会话中启动诊断过程。 因此,可以跨会话启动诸如诊断的动作。

    Contention Analysis in Multi-Threaded Software
    6.
    发明申请
    Contention Analysis in Multi-Threaded Software 有权
    多线程软件的竞争分析

    公开(公告)号:US20110225592A1

    公开(公告)日:2011-09-15

    申请号:US12721662

    申请日:2010-03-11

    申请人: Maxim Goldin

    发明人: Maxim Goldin

    IPC分类号: G06F9/46

    CPC分类号: G06F11/3632 G06F11/3612

    摘要: A contention log contains data for contentions that occur during execution of a multi-threaded application, such as a timestamp of the contention, contention length, contending thread identity, contending thread call stack, and contended-for resource identity. After execution of the application ends, contention analysis data generated from the contention log shows developers information such as total number of contentions for particular resource(s), total number of contentions encountered by thread(s), a list of resources that were most contended for, a list of threads that were most contending, a plot of the number of contentions per time interval during execution of the application, and so on. A developer may pivot between details about threads and details about resources to explore relationships between thread(s) and resource(s) involved in contention(s). Other information may also be displayed, such as call stacks, program source code, and process thread ownership, for example.

    摘要翻译: 竞争日志包含在执行多线程应用程序期间发生的争用的数据,例如争用的时间戳,争用长度,竞争线程标识,竞争线程调用堆栈和竞争资源身份。 执行应用程序结束后,从争用日志生成的争用分析数据显示开发者信息,例如特定资源的争用总数,线程遇到的争用总数,最受争议的资源列表 for,最有争议的线程列表,在执行应用程序期间每个时间间隔的争用次数的图表,等等。 一个开发人员可以在关于线程的详细信息和关于资源的详细信息之间进行讨论,以探索在争用中涉及到的线程和资源之间的关系。 还可以显示其他信息,例如调用堆栈,程序源代码和进程线程所有权。

    Methods and apparatus for software profiling
    7.
    发明授权
    Methods and apparatus for software profiling 有权
    软件分析的方法和设备

    公开(公告)号:US07716643B2

    公开(公告)日:2010-05-11

    申请号:US11134649

    申请日:2005-05-20

    申请人: Maxim Goldin

    发明人: Maxim Goldin

    IPC分类号: G06F9/44

    摘要: In one embodiment, a method is provided for use in a system which includes a target application, a profiler application and a debugging application, the profiler application being operative to attach to the target application and, upon attaching to the target application, performing operations to profile the target application, the debugging application being operative to monitor the target application. The method comprises attaching, by the profiler application, to the target application such that operations performed by the profiler application in profiling the target application are susceptible to monitoring by the debugging application. In one embodiment, the method further comprises generating helper code; transferring the helper code to the memory used by the target application; and causing the helper code to be executed from the memory used by the target application, wherein the helper code, when executed, causes the profiler agent library to be loaded to the memory used by the target application.

    摘要翻译: 在一个实施例中,提供了一种在包括目标应用程序,分析器应用程序和调试应用程序的系统中使用的方法,所述分析器应用程序可操作以附接到目标应用程序,并且在附接到目标应用程序时,执行操作 配置目标应用程序,调试应用程序可用于监视目标应用程序。 该方法包括通过分析器应用将目标应用程序附加到目标应用程序中,使得分析器应用程序在分析目标应用程序时执行的操作易受调试应用程序的监视。 在一个实施例中,该方法还包括产生辅助代码; 将帮助代码传送到目标应用程序使用的内存; 并且使得所述帮助代码从所述目标应用程序使用的所述存储器中执行,其中所述帮助程序代码在被执行时使得所述分析器代理程序库被加载到所述目标应用程序使用的存储器中。

    Resource contention log navigation with thread view and resource view pivoting via user selections
    8.
    发明授权
    Resource contention log navigation with thread view and resource view pivoting via user selections 有权
    资源争用日志导航,具有通过用户选择旋转的线程视图和资源视图

    公开(公告)号:US08392930B2

    公开(公告)日:2013-03-05

    申请号:US12721662

    申请日:2010-03-11

    申请人: Maxim Goldin

    发明人: Maxim Goldin

    IPC分类号: G06F9/46 G06F3/00

    CPC分类号: G06F11/3632 G06F11/3612

    摘要: A contention log contains data for contentions that occur during execution of a multi-threaded application, such as a timestamp of the contention, contention length, contending thread identity, contending thread call stack, and contended-for resource identity. After execution of the application ends, contention analysis data generated from the contention log shows developers information such as total number of contentions for particular resource(s), total number of contentions encountered by thread(s), a list of resources that were most contended for, a list of threads that were most contending, a plot of the number of contentions per time interval during execution of the application, and so on. A developer may pivot between details about threads and details about resources to explore relationships between thread(s) and resource(s) involved in contention(s). Other information may also be displayed, such as call stacks, program source code, and process thread ownership, for example.

    摘要翻译: 竞争日志包含在执行多线程应用程序期间发生的争用的数据,例如争用的时间戳,争用长度,竞争线程标识,竞争线程调用堆栈和竞争资源身份。 执行应用程序结束后,从争用日志生成的争用分析数据显示开发者信息,例如特定资源的争用总数,线程遇到的争用总数,最受争议的资源列表 for,最有争议的线程列表,在执行应用程序期间每个时间间隔的争用次数的图表,等等。 一个开发人员可以在关于线程的详细信息和关于资源的详细信息之间进行讨论,以探索在争用中涉及到的线程和资源之间的关系。 还可以显示其他信息,例如调用堆栈,程序源代码和进程线程所有权。

    Method and apparatus for hybrid stack walking
    9.
    发明授权
    Method and apparatus for hybrid stack walking 有权
    混合堆栈行走的方法和装置

    公开(公告)号:US07574702B2

    公开(公告)日:2009-08-11

    申请号:US11083843

    申请日:2005-03-18

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F9/45533

    摘要: In one embodiment, a method and apparatus for stack walking a call stack associated with mixed code, by interleaving a native stack walking process with a managed stack walking process. Mixed code comprises at least one managed instruction and at least one native instruction, and the call stack comprises at least one managed frame and at least one native frame. The managed frames being associated with the managed instructions, and the native frames being associated with native instructions. The method comprises acts of performing a managed stack walk on the call stack, a native stack walk on native frames of the call stack. In a further embodiment, handling indirect jumps during a native stack walk, and in another embodiment, detecting validity of a memory address.

    摘要翻译: 在一个实施例中,通过将本地堆栈步行处理与管理堆栈步行处理交织在一起,堆叠步行与混合代码相关联的调用堆栈的方法和装置。 混合代码包括至少一个托管指令和至少一个本机指令,并且所述调用堆栈包括至少一个托管框架和至少一个本机框架。 被管理的帧与被管理的指令相关联,并且本地帧与本机指令相关联。 该方法包括在调用堆栈上执行托管堆栈行为的动作,在调用堆栈的本机帧上执行本机堆栈。 在另一个实施例中,处理在本地堆栈行进期间的间接跳跃,并且在另一个实施例中,检测存储器地址的有效性。