Setting breakpoints in optimized instructions
    61.
    发明授权
    Setting breakpoints in optimized instructions 有权
    在优化说明中设置断点

    公开(公告)号:US08943480B2

    公开(公告)日:2015-01-27

    申请号:US13324774

    申请日:2011-12-13

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3628 G06F11/3636

    摘要: A method, computer-readable storage medium, and computer system are provided. In an embodiment, in response to a command that requests setting a breakpoint at a line in a module, a determination is made whether a snapshot instruction exists before a machine instruction that implements a source statement at the line. If the snapshot instruction exists before the machine instruction that implements the source statement at the line, the breakpoint is set at the machine instruction that implements the source statement at the line. If the snapshot instruction does not exist before the machine instruction that implements the source statement at the line, the module is recompiled to add the snapshot instruction before the machine instruction that implements the source statement.

    摘要翻译: 提供了一种方法,计算机可读存储介质和计算机系统。 在一个实施例中,响应于请求在模块中的一行设置断点的命令,确定在执行在该行的源语句的机器指令之前是否存在快照指令。 如果在执行源语句的机器指令之前存在快照指令,那么断点将被设置在实现源语句的机器指令中。 如果快照指令在实现源语句的机器指令之前不存在,则该模块将重新编译,以在实现源语句的机器指令之前添加快照指令。

    Generating code that calls functions based on types of memory
    62.
    发明授权
    Generating code that calls functions based on types of memory 有权
    根据内存类型生成调用函数的代码

    公开(公告)号:US08910136B2

    公开(公告)日:2014-12-09

    申请号:US13225040

    申请日:2011-09-02

    摘要: In an embodiment, in response to reading a declaration of a function that specifies a name of the function and a type of memory on which the function operates, the name of the function, a pointer to the function, and the type are saved to a template. In response to reading a call statement that specifies the name of the function and an identifier of an object, first code is generated. The first code, when executed, reads the pointer to the function from a virtual function table pointed to by the object, finds an entry in the virtual function table that represents the function, and reads the pointer from the entry in the virtual function table. The call statement, when executed, requests a call of the function. Second code is generated that, when executed, calls the function using the pointer read from the virtual function table.

    摘要翻译: 在一个实施例中,响应于读取指定功能的名称的功能的声明以及功能在其上操作的存储器的类型,功能的名称,指向功能的指针和类型被保存到 模板。 响应于读取指定函数的名称和对象的标识符的调用语句,生成第一个代码。 第一个代码执行时,从对象指向的虚拟函数表中读取指向该函数的指针,在虚函数表中找到一个表示该函数的条目,并从虚函数表中的条目读取指针。 调用语句在执行时请求调用该函数。 生成第二个代码,当执行时,使用从虚拟函数表读取的指针调用该函数。

    Compiling source code for debugging with variable value restoration based on debugging user activity
    63.
    发明授权
    Compiling source code for debugging with variable value restoration based on debugging user activity 有权
    基于调试用户活动,编译使用变量值恢复进行调试的源代码

    公开(公告)号:US08910126B2

    公开(公告)日:2014-12-09

    申请号:US13449489

    申请日:2012-04-18

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3624 G06F8/443

    摘要: Compiling source code includes receiving, by an optimizing compiler from a debugger, a variable value modification profile that specifies locations in the source code at which variable values modified during a debug session; compiling the source code, including: inserting snapshots at one or more of the locations in the source code at which variable values were modified, each snapshot including a breakpoint; and only for each snapshot at a location in the source code at which variable values were modified: inserting, between the breakpoint and remaining source code at the location of the snapshot, a module of computer program instructions that when executed retrieves a current value of a variable and stores the current value in a register; and recording the location of each inserted snapshot; and providing, to the debugger by the optimizing compiler, the recorded locations of each inserted snapshot along with the compiled source code.

    摘要翻译: 编译源代码包括通过调试器的优化编译器接收变量值修改配置文件,该变量值修改配置文件指定在调试会话期间修改变量值的源代码中的位置; 编译源代码,包括:在源代码中修改变量值的一个或多个位置插入快照,每个快照包含一个断点; 并且仅针对源代码中修改变量值的位置处的每个快照:在快照位置的断点和剩余源代码之间插入计算机程序指令的模块,当执行时,该模块检索当前值 变量并将当前值存储在寄存器中; 并记录每个插入的快照的位置; 并且通过优化编译器向调试器提供每个插入的快照的记录位置以及编译的源代码。

    Replacing contiguous breakpoints with control words
    64.
    发明授权
    Replacing contiguous breakpoints with control words 有权
    用控制字代替连续的断点

    公开(公告)号:US08899343B2

    公开(公告)日:2014-12-02

    申请号:US13612089

    申请日:2012-09-12

    IPC分类号: G06F9/44 G06F9/45 G06F11/36

    摘要: In an embodiment, a first execution path in a program is determined that has been executed a largest number of times, as compared to at least one other path in the program. Swapped instructions are replaced in the program with breakpoints, wherein the swapped instructions are not on the first execution path. The breakpoints that are not on the first execution path and that are contiguous to each other are replaced in the program with a control word.

    摘要翻译: 在一个实施例中,与程序中的至少一个其他路径相比,确定程序中的第一执行路径已被执行最多次数。 交换的指令在具有断点的程序中被替换,其中交换的指令不在第一执行路径上。 不在第一执行路径上并且彼此相邻的断点在程序中被替换为控制字。

    Collaborative software debugging in a distributed system with client-specific dynamic breakpoints
    65.
    发明授权
    Collaborative software debugging in a distributed system with client-specific dynamic breakpoints 失效
    在具有客户端特定动态断点的分布式系统中进行协作软件调试

    公开(公告)号:US08671393B2

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

    申请号:US12908942

    申请日:2010-10-21

    申请人: Cary L. Bates

    发明人: Cary L. Bates

    IPC分类号: G06F9/44

    CPC分类号: G06F11/362 G06F11/3664

    摘要: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving application-level messages, including receiving, from a requesting debug client, a request to establish a dynamic breakpoint at location in source code; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger, sending to the debug administrator an instruction to register the dynamic breakpoint, and sending to the back-end debugger a command to establish the dynamic breakpoint; establishing the dynamic breakpoint; registering the requesting debug client's dynamic breakpoint; and returning, by the debug server to the debug clients in response to the application-level messages routed to the back-end debugger, client-specific debug results.

    摘要翻译: 在包括调试服务器和调试客户端的分布式系统中,通过数据通信网络进行数据通信,调试服务器包括调试管理员,消息路由器,后端调试器和调试器,协作软件调试包括接收 应用级消息,包括从请求的调试客户端接收在源代码中的位置处建立动态断点的请求; 在调试客户端,调试管理员和后端调试器之间路由应用级消息,包括提供后端调试器的分布式控制,向调试管理员发送注册动态断点的指令,并发送给 后端调试器命令建立动态断点; 建立动态断点; 注册请求的调试客户端的动态断点; 并通过调试服务器将响应于路由到后端调试器的应用程序级别消息返回给调试客户机,进行客户端特定的调试结果。

    Collaborative software debugging in a distributed system with execution resumption on consensus
    66.
    发明授权
    Collaborative software debugging in a distributed system with execution resumption on consensus 失效
    分布式系统中的协同软件调试,执行恢复一致

    公开(公告)号:US08656360B2

    公开(公告)日:2014-02-18

    申请号:US13090503

    申请日:2011-04-20

    申请人: Cary L. Bates

    发明人: Cary L. Bates

    IPC分类号: G06F9/44

    CPC分类号: G06F11/362

    摘要: In a distributed system that includes a debug server and debug clients coupled for data communications, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving a number of application-level messages including a request to resume execution of the debuggee; routing the messages by the message router, providing distributed control of the back-end debugger to the debug clients, including: polling one or more debug clients for approval to resume execution of the debuggee and resuming execution of the debuggee only if a number of debug clients providing approval to resume execution of the debuggee exceeds a predefined threshold, and returning, by the debug server to the debug clients in response to the application-level messages routed to the back-end debugger, client-specific debug results.

    摘要翻译: 在包括调试服务器和耦合用于数据通信的调试客户端的分布式系统中,调试服务器包括调试管理员,消息路由器,后端调试器和调试器,协作软件调试包括接收多个应用程序 - 级别的消息,包括恢复执行调试器的请求; 通过消息路由器路由消息,向调试客户端提供后端调试器的分布式控制,包括:轮询一个或多个调试客户端,以便批准恢复调试器的执行,并且只有在调试数量多的情况下才恢复调试器的执行 提供批准恢复执行调试程序的客户端超过预定义的阈值,并且由调试服务器返回到调试客户端以响应路由到后端调试器的应用程序级消息,客户端特定的调试结果。

    Monitoring changes to data within a critical section of a threaded program
    67.
    发明授权
    Monitoring changes to data within a critical section of a threaded program 失效
    监视线程程序关键部分内的数据更改

    公开(公告)号:US08572577B2

    公开(公告)日:2013-10-29

    申请号:US12143101

    申请日:2008-06-20

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3636

    摘要: A method, system and program product for monitoring changes to a variable within a critical section of a threaded program. The method includes establishing, using a debugging tool, a watch for monitoring changes to a variable that occur outside of the critical section and executing a portion of the threaded program with a debugger. Further, the method includes determining, using the tool, whether or not a thread has executed a start breakpoint set for the critical section, if the thread has executed the start breakpoint set, determining whether or not the thread has executed an end breakpoint set for the critical section, and if the thread has not executed the end breakpoint set, displaying any watches triggered responsive to updates to the variable that occur outside of the critical section, such that, only updates to the variable that occur outside of the critical section will trigger the displaying.

    摘要翻译: 一种方法,系统和程序产品,用于监视线程程序关键部分内变量的更改。 该方法包括使用调试工具建立一个监视器,用于监视对关键部分之外发生的变量的更改,并使用调试器执行线程程序的一部分。 此外,该方法包括:如果线程已经执行了开始断点集,则确定线程是否已经执行了关键部分设置的开始断点,确定线程是否已经执行了为 关键部分,如果线程没有执行结束断点集,则显示响应于对关键部分之外发生的变量的更新而触发的任何监视,使得仅对发生在关键部分之外的变量的更新将仅 触发显示。

    SETTING BREAKPOINTS IN OPTIMIZED INSTRUCTIONS
    68.
    发明申请
    SETTING BREAKPOINTS IN OPTIMIZED INSTRUCTIONS 有权
    在优化的说明中设置断点

    公开(公告)号:US20130263094A1

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

    申请号:US13434137

    申请日:2012-03-29

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3636

    摘要: A method, computer-readable storage medium, and computer system are provided. In an embodiment, a command is received that specifies a debug compile option and requests a compile of a module into object code. If the debug compile option specifies a first debug compile option, snapshot instructions are inserted immediately prior to each machine instruction in the object code at which a breakpoint was previously set. If the debug compile option specifies the first debug compile option, snapshot instructions are inserted immediately prior to each machine instruction in the object code that implements a control flow statement.

    摘要翻译: 提供了一种方法,计算机可读存储介质和计算机系统。 在一个实施例中,接收指定调试编译选项并请求将模块编译成目标代码的命令。 如果调试编译选项指定了第一个调试编译选项,则会在先前设置断点的目标代码中的每个机器指令之前立即插入快照指令。 如果调试编译选项指定了第一个调试编译选项,则在实现控制流程语句的目标代码中的每个机器指令之前立即插入快照指令。

    User-specific software debugging
    69.
    发明授权
    User-specific software debugging 失效
    用户专用软件调试

    公开(公告)号:US08495590B2

    公开(公告)日:2013-07-23

    申请号:US13157443

    申请日:2011-06-10

    申请人: Cary L. Bates

    发明人: Cary L. Bates

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3636

    摘要: User-specific software debugging with user-specific step commands that includes: receiving a command to step execution to a source code module associated with a user; identifying routines in a call stack associated with the user; inserting, for each identified routine, a breakpoint at each source code line of the routine; inserting, for each source code module associated with the user and not in the call stack, a breakpoint at an entry point of the source code module; and executing the debuggee until the debuggee encounters one of the inserted breakpoints thereby halting execution of the debuggee. User-specific debugging with user-specific Dynamically Linked Library (DLL) load processing modes including: receiving a selection of a user-specific DLL processing mode; upon loading a DLL, retrieving a user identification; determining whether the DLL is associated with the user; and processing the DLL in accordance with user specific DLL processing mode only if the DLL is associated with the user.

    摘要翻译: 用户特定的软件调试,具有用户特定的步骤命令,其包括:接收到与用户相关联的源代码模块执行步骤的命令; 识别与用户相关联的呼叫堆栈中的例程; 为每个识别的例程插入在例程的每个源代码行的断点; 对于与用户相关联的每个源代码模块而不是在调用堆栈中插入在源代码模块的入口点处的断点; 并且执行调试器直到调试器遇到插入的断点之一,从而停止调试器的执行。 用户特定的调试,具有用户特定的动态链接库(DLL)加载处理模式,包括:接收用户特定的DLL处理模式的选择; 加载DLL时,检索用户标识; 确定所述DLL是否与所述用户相关联; 并且仅在DLL与用户相关联时才根据用户特定的DLL处理模式处理DLL。

    Holding threads in a software debugger
    70.
    发明授权
    Holding threads in a software debugger 失效
    在线程软件调试器中

    公开(公告)号:US08495589B2

    公开(公告)日:2013-07-23

    申请号:US12938492

    申请日:2010-11-03

    申请人: Cary L. Bates

    发明人: Cary L. Bates

    IPC分类号: G06F9/44

    CPC分类号: G06F11/362

    摘要: A debugger includes a thread holding mechanism that analyzes the code being executed by multiple threads, and delays holding each thread that is currently executing system code external to the program until the thread is no longer executing the system code external to the program, or until some threshold is exceeded. Delaying holding of a thread that is executing system code external to the program avoids potential conditions that could lock up the debugger.

    摘要翻译: 调试器包括一个线程保持机制,用于分析多个线程正在执行的代码,并且将当前执行系统代码的每个线程延迟到程序外部,直到该线程不再执行该程序外部的系统代码,或者直到一些 超过阈值。 延迟持有执行程序外部程序的线程避免了可能锁定调试器的潜在条件。