Method for back tracing program execution
    1.
    发明授权
    Method for back tracing program execution 有权
    回溯跟踪程序执行的方法

    公开(公告)号:US06353924B1

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

    申请号:US09246619

    申请日:1999-02-08

    IPC分类号: G06F9445

    摘要: A method of back-tracing execution of a computer program, where the computer program comprises a plurality of blocks, comprises instrumenting an original version of the program by adding instrumentation code to some or all of the blocks to form an instrumented program. Instrumentation can be added at the binary or source level, or at link time. The instrumentation code records execution sequence information upon execution of the corresponding instrumented block to create a trace record of the executed program. The execution sequence information for each block comprises a block identifier which identifies the corresponding block. A detailed back-trace is generated, after the program has executed, by replacing each recorded block identifier with program counters associated with each instruction in the corresponding block. The application may comprise several programs or subprograms, in which case separate regions of memory can be maintained. Each region is associated with a program or subprogram or a set of programs or subprograms and stores therein part of the trace record corresponding to the associated set of programs or subprograms. The trace records themselves may be of different types. After execution, the trace record is presented to a user, in the form of assembly code, or more preferably, in the form of source level code. In an alternative embodiment, a summary of the trace record recorded during execution of an instrumented program is presented to a user. Various types of traces can be produced, including a last instruction trace and a first instruction trace.

    摘要翻译: 计算机程序包括多个块的计算机程序的后向跟踪执行方法包括通过向一些或所有块添加仪表代码来对程序的原始版本进行检测以形成检测程序。 仪器可以在二进制或源级别或链接时添加。 仪器代码在执行相应的检测块后记录执行序列信息,以创建执行程序的跟踪记录。 每个块的执行序列信息包括标识相应块的块标识符。 在执行程序之后,通过用与相应块中的每个指令相关联的程序计数器替换每个记录的块标识符来生成详细的后向跟踪。 应用程序可以包括若干程序或子程序,在这种情况下可以维护单独的存储区域。 每个区域与程序或子程序或一组程序或子程序相关联,并在其中存储对应于相关程序或子程序集的跟踪记录的一部分。 跟踪记录本身可能有不同的类型。 在执行之后,跟踪记录以汇编代码的形式呈现给用户,或者更优选地以源级代码的形式呈现给用户。 在替代实施例中,向用户呈现在执行被检测程序期间记录的跟踪记录的摘要。 可以产生各种类型的迹线,包括最后的指令轨迹和第一指令轨迹。

    Method for simulating back program execution from a traceback sequence
    2.
    发明授权
    Method for simulating back program execution from a traceback sequence 失效
    从回溯序列模拟程序执行的方法

    公开(公告)号:US07543279B2

    公开(公告)日:2009-06-02

    申请号:US10852935

    申请日:2004-05-25

    IPC分类号: G06F9/44 G06F9/45

    摘要: A program execution data trace is created by instrumenting a program to record value sets during execution and an instruction trace. By simulating instructions either backward or forward from a first instruction associated with a recorded value set to a second instruction according to the instruction trace, a value set is determined for the second instruction. Backward and forward simulation can be combined to complement each other. For backward simulation, a table of simulation instructions is preferably maintained, which associates program instructions encountered in the instruction trace with simulation instructions which reverse the operation of the associated program instructions. Preferably, one or more probes is inserted into the program to save values of particular variables whose value may be difficult to determine. Preferably, the instruction trace is displayed alongside and correlated with the data trace.

    摘要翻译: 程序执行数据跟踪是通过在程序执行过程中记录数值集和指令跟踪进行测量而创建的。 通过根据指令轨迹从与从设定到第二指令的记录值相关联的第一指令向后或向前模拟指令,为第二指令确定值集合。 后向和前向模拟可以相互补充。 对于反向模拟,优选地保持模拟指令表,其将在指令轨迹中遇到的程序指令与反转相关程序指令的操作的模拟指令相关联。 优选地,将一个或多个探针插入到程序中以保存其值可能难以确定的特定变量的值。 优选地,指示轨迹显示在数据轨迹旁边并与之相关联。

    Early warning mechanism for enhancing enterprise availability
    3.
    发明授权
    Early warning mechanism for enhancing enterprise availability 有权
    提高企业可用性的预警机制

    公开(公告)号:US07823134B2

    公开(公告)日:2010-10-26

    申请号:US10857074

    申请日:2004-05-28

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3676 G06F11/3495

    摘要: A computer method for issuing an early warning includes determining, using change and test coverage and control flow and data flow analyses of a program, locations in the program at which to insert early warning (EW) code to monitor for an event. The program is instrumented with EW code which monitors for the event, by inserting EW code at the determined locations. Upon detecting the event, EW code performs an early action warning, or issues an early action. Early warnings are issued when an EW-instrumented block is reached. Issuance of an early warning action can be conditional upon execution of the program in a particular environment, such as a production environment. Issuance of an EW can also be conditional upon executing an untested block of code that was recently modified.

    摘要翻译: 用于发布早期警告的计算机方法包括:确定,使用改变和测试覆盖,以及控制程序的流程和数据流分析,以便插入预警(EW)代码来监视事件的程序中的位置。 该程序用EW代码进行测试,EW代码通过在确定的位置插入EW代码来监视事件。 在检测到事件时,EW代码执行早期的动作警告,或发出早期的动作。 当到达EW仪表盘块时,会发出预警。 发布预警措施可以在特定环境(如生产环境)中执行程序的前提。 EW的颁发也可以是执行最近修改的未经验证的代码块的条件。

    Method for simulating back program execution from a traceback sequence
    4.
    发明授权
    Method for simulating back program execution from a traceback sequence 失效
    从回溯序列模拟程序执行的方法

    公开(公告)号:US06804814B1

    公开(公告)日:2004-10-12

    申请号:US09474680

    申请日:1999-12-29

    IPC分类号: G06F944

    摘要: A program execution data trace is created by instrumenting a program to record value sets during execution and an instruction trace. By simulating instructions either backward or forward from a first instruction associated with a recorded value set to a second instruction according to the instruction trace, a value set is determined for the second instruction. Backward and forward simulation can be combined to complement each other. For backward simulation, a table of simulation instructions is preferably maintained, which associates program instructions encountered in the instruction trace with simulation instructions which reverse the operation of the of the associated program instructions. Preferably, one or more probes is inserted into the program to save values of particular variables whose value may be difficult to determine. Preferably, the instruction trace is displayed alongside and correlated with the data trace. In one embodiment, the instruction trace is displayed and a value set is determined for an instruction upon a request by the user indicating the instruction for which the value set is desired.

    摘要翻译: 程序执行数据跟踪是通过在程序执行过程中记录数值集和指令跟踪进行测量而创建的。 通过根据指令轨迹从与从设定到第二指令的记录值相关联的第一指令向后或向前模拟指令,为第二指令确定值集合。 后向和前向模拟可以相互补充。 为了进行反向仿真,优选地保持模拟指令表,其将在指令轨迹中遇到的程序指令与反转相关程序指令的操作的模拟指令相关联。 优选地,将一个或多个探针插入到程序中以保存其值可能难以确定的特定变量的值。 优选地,指示轨迹显示在数据轨迹旁边并与之相关联。 在一个实施例中,显示指令轨迹,并且在用户请求时指示针对期望值设置的指令的指令确定值集合。

    Early warning mechanism for enhancing enterprise availability
    5.
    发明授权
    Early warning mechanism for enhancing enterprise availability 失效
    提高企业可用性的预警机制

    公开(公告)号:US06745383B1

    公开(公告)日:2004-06-01

    申请号:US09474679

    申请日:1999-12-29

    IPC分类号: G06F944

    CPC分类号: G06F11/3676 G06F11/3495

    摘要: A computer method for issuing an early warning includes determining, using change and test coverage and control flow and data flow analyses of a program, locations in the program at which to insert early warning (EW) code to monitor for an event. The program is instrumented with EW code which monitors for the event, by inserting EW code at the determined locations. Upon detecting the event, EW code performs an early action warning, or issues an early action. Early warnings are issued when an EW-instrumented block is reached. Issuance of an early warning action can be conditional upon execution of the program in a particular environment, such as a production environment. Issuance of an EW can also be conditional upon executing an untested block of code that was recently modified. The issuing of an early warning can include sending an email, writing into a log file, sending a message to a console, where the message causes the change of a human-perceptible characteristic, placing the program into a wait state, halting the program, sending an alarm to an operator, or triggering a failover. In some embodiments, EW code can be deactivated upon certain conditions. Issuance of an early warning can also occur upon an event such as the execution of a user-inserted assert or warning statement, or before a file is opened, wherein the EW issues if a null pointer about to be passed to a system function. In some embodiments, an EW will issue if the value of an argument to some function exceeds a predetermined range. In various embodiments, the EW code is placed in a loop, and issues an EW if the loop is executed more than a predetermined number of times, or the EW code issues an EW upon the execution of user-marked code, or the EW code issues an EW when the time duration between execution of two points in the program exceeds a predetermined value, or upon the detection of an untested configuration.

    摘要翻译: 用于发布早期警告的计算机方法包括:确定,使用改变和测试覆盖,以及控制程序的流程和数据流分析,以便插入预警(EW)代码来监视事件的程序中的位置。 该程序用EW代码进行测试,EW代码通过在确定的位置插入EW代码来监视事件。 在检测到事件时,EW代码执行早期的动作警告,或发出早期的动作。 当到达EW仪表盘块时,会发出预警。 发布预警措施可以在特定环境(如生产环境)中执行程序的前提。 EW的颁发也可以是执行最近修改的未经验证的代码块的条件。 发出预警可以包括发送电子邮件,写入日志文件,向控制台发送消息,其中消息导致人感知特征的改变,将程序置于等待状态,停止程序, 向操作员发送警报,或触发故障切换。 在一些实施例中,可以在某些条件下停用EW代码。 发生预警也可能发生在诸如执行用户插入的断言或警告声明的事件之后,或者在文件被打开之前,其中如果空指针被传递给系统功能,EW将发出预警。 在一些实施例中,如果某个功能的参数的值超过预定范围,则将发出EW。 在各种实施例中,将EW代码置于循环中,并且如果循环执行多于预定次数则发出EW,或者EW代码在执行用户标记的代码时发出EW,或EW代码 当程序中的两点执行之间的持续时间超过预定值时,或者在检测到未经测试的配置之后发出EW。

    Method for determining the degree to which changed code has been exercised
    6.
    发明授权
    Method for determining the degree to which changed code has been exercised 失效
    确定已更换代码已被执行的程度的方法

    公开(公告)号:US06748584B1

    公开(公告)日:2004-06-08

    申请号:US09474389

    申请日:1999-12-29

    IPC分类号: G06F945

    CPC分类号: G06F8/71

    摘要: A method for determining changed code in a second program binary relative to a first or baseline program binary, where the second program is a different version of the first program, includes translating, responsive to symbol tables and/or control flow representations, machine addresses of both program binaries to symbols. The first and second program binaries are disassembled using the translated symbols. Differences between the two resulting disassemblies are determined, and a list of the differences is created. Differences between the program binaries can be determined by textually comparing the disassemblies, or alternatively, by determining the differences between the control flow representations of the programs. The list of differences can be presented to a user, or alternatively, can be passed to another process for further processing, such as test coverage analysis, code change analysis, or failure analysis, among other analyses. Analyzing changed code coverage includes marking code in the second program which is changed or different from the first program. The second program is then executed in a test environment, and code which is executed is marked as having been executed. Next, the second program is executed in a non-test environment, such as a production environment, and code which is executed in this second environment is marked accordingly. Finally, from the variously marked code, a list of changed code which have not executed in the test environment but have executed in the non-test environment is provided.

    摘要翻译: 一种用于确定相对于第一或基线程序二进制程序的第二程序二进制中的改变的代码的方法,其中第二程序是第一程序的不同版本,包括响应于符号表和/或控制流程表示来转换机器地址 两个程序二进制到符号。 第一个和第二个程序二进制文件使用翻译的符号进行拆分。 确定两个产生的拆卸之间的差异,并创建差异列表。 程序二进制文件之间的差异可以通过文本比较反汇编来确定,或者通过确定程序的控制流表示之间的差异来确定。 差异列表可以呈现给用户,或者替代地,可以传递到另一个进程以进行进一步处理,例如测试覆盖分析,代码变换分析或故障分析以及其他分析。 分析更改的代码覆盖范围包括在第二个程序中标记代码,该代码与第一个程序更改或不同。 然后在测试环境中执行第二程序,并且执行的代码被标记为已被执行。 接下来,第二程序在诸如生产环境的非测试环境中执行,并且在该第二环境中执行的代码被相应地标记。 最后,从各种标记的代码中,提供了在测试环境中未执行但在非测试环境中执行的已更改代码的列表。

    Method for determining the degree to which changed code has been exercised
    7.
    发明授权
    Method for determining the degree to which changed code has been exercised 有权
    确定已更换代码已被执行的程度的方法

    公开(公告)号:US07296261B2

    公开(公告)日:2007-11-13

    申请号:US10862048

    申请日:2004-06-04

    IPC分类号: G06F9/44

    CPC分类号: G06F8/71

    摘要: A method for determining changed code in a second program binary relative to a first or baseline program binary, where the second program is a different version of the first program, includes translating, responsive to symbol tables and/or control flow representations, machine addresses of both program binaries to symbols. The first and second program binaries are disassembled using the translated symbols. Differences between the two resulting disassemblies are determined, and a list of the differences is created. Differences between the program binaries can be determined by textually comparing the disassemblies, or alternatively, by determining the differences between the control flow representations of the programs. The list of differences can be presented to a user, or alternatively, can be passed to another process for further processing, such as test coverage analysis, code change analysis, or failure analysis, among other analyses.

    摘要翻译: 一种用于确定相对于第一或基线程序二进制程序的第二程序二进制中的改变的代码的方法,其中第二程序是第一程序的不同版本,包括响应于符号表和/或控制流程表示来转换机器地址 两个程序二进制到符号。 第一个和第二个程序二进制文件使用翻译的符号进行拆分。 确定两个产生的拆卸之间的差异,并创建差异列表。 程序二进制文件之间的差异可以通过文本比较反汇编来确定,或者通过确定程序的控制流表示之间的差异来确定。 差异列表可以呈现给用户,或者替代地,可以传递到另一个进程以进行进一步处理,例如测试覆盖分析,代码变换分析或故障分析以及其他分析。

    Annotating exception information in a computer program
    8.
    发明授权
    Annotating exception information in a computer program 有权
    在计算机程序中注释异常信息

    公开(公告)号:US08250544B2

    公开(公告)日:2012-08-21

    申请号:US12043007

    申请日:2008-03-05

    IPC分类号: G06F9/44

    CPC分类号: G06F8/443

    摘要: Annotation of exception information in a computer program. This annotation is not present in the source code itself, but is annotated during the compilation process or perhaps for purpose of analyzing the code. To perform the annotation, environmental rules are accessed regarding the environment in which the program is to be executed. The program is then evaluated in the context of these environmental rules to detect portions that, in the context of the environmental rules, may cause exceptions to be thrown. Those portions may then be annotated with exception information that describes any exceptions that could be thrown at that detected portion.

    摘要翻译: 在计算机程序中注释异常信息。 该注释不存在于源代码本身中,但在编译过程中进行注释,也可能用于分析代码。 要执行注释,请访问有关执行程序的环境的环境规则。 然后在这些环境规则的上下文中对该程序进行评估,以检测在环境规则的上下文中可能引起异常的部分。 然后可以使用描述可能在该检测到的部分处抛出的任何异常的异常信息来注释那些部分。

    ANNOTATING EXCEPTION INFORMATION IN A COMPUTER PROGRAM
    9.
    发明申请
    ANNOTATING EXCEPTION INFORMATION IN A COMPUTER PROGRAM 有权
    在计算机程序中提示异常信息

    公开(公告)号:US20090228869A1

    公开(公告)日:2009-09-10

    申请号:US12043007

    申请日:2008-03-05

    IPC分类号: G06F9/44

    CPC分类号: G06F8/443

    摘要: Annotation of exception information in a computer program. This annotation is not present in the source code itself, but is annotated during the compilation process or perhaps for purpose of analyzing the code. To perform the annotation, environmental rules are accessed regarding the environment in which the program is to be executed. The program is then evaluated in the context of these environmental rules to detect portions that, in the context of the environmental rules, may cause exceptions to be thrown. Those portions may then be annotated with exception information that describes any exceptions that could be thrown at that detected portion.

    摘要翻译: 在计算机程序中注释异常信息。 该注释不存在于源代码本身中,但在编译过程中进行注释,也可能用于分析代码。 要执行注释,请访问有关执行程序的环境的环境规则。 然后在这些环境规则的上下文中对该程序进行评估,以检测在环境规则的上下文中可能引起异常的部分。 然后可以使用描述可能在该检测到的部分处抛出的任何异常的异常信息来注释那些部分。

    Compiler for performing a loop fusion, dependent upon loop peeling
and/or loop reversal
    10.
    发明授权
    Compiler for performing a loop fusion, dependent upon loop peeling and/or loop reversal 失效
    用于执行环路融合的编译器,取决于环路剥离和/或环路反转

    公开(公告)号:US6070011A

    公开(公告)日:2000-05-30

    申请号:US955075

    申请日:1997-10-21

    IPC分类号: G06F9/45

    CPC分类号: G06F8/433 G06F8/443

    摘要: A compile method employs loop fusion to improve execution of a first loop and a second loop in a code sequence. A compile method initially peels one or more loop iterations from one of the loops to cause each of the loops to exhibit an equal number of loop iterations. Thereafter, an attempt is made to fuse the first and second loops, upon a condition that the resulting fused loop produces a same computational result as would be produced if the first loop and second loop were not fused. If the condition is not met, a loop reversal is performed on one of the loops and a fusing action is again attempted; if the attempted fusing action of the loops does not fulfill the condition, a loop reversal is performed on the other loop and a fusing action is again attempted. The combined loop peeling/loop reversal actions provide a higher probability of an ability to fuse the loops than otherwise.

    摘要翻译: 编译方法采用循环融合来改进代码序列中的第一循环和第二循环的执行。 编译方法最初从一个循环中剥离一个或多个循环迭代,以使每个循环呈现相等数量的循环迭代。 此后,尝试熔化第一和第二回路,条件是所产生的熔断回路产生与第一回路和第二回路未熔合时相同的计算结果。 如果不符合条件,则在其中一个环路上执行环路反转,并再次尝试熔断动作; 如果循环的尝试融合动作不能满足条件,则在另一个循环上执行循环反转,并且再次尝试熔化动作。 组合的环路剥离/环路反向动作提供了比其他方式融合环路的更高概率。