会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 1. 发明授权
    • Method for simulating back program execution from a traceback sequence
    • 从回溯序列模拟程序执行的方法
    • US07543279B2
    • 2009-06-02
    • US10852935
    • 2004-05-25
    • Andrew E. AyersRichard SchoolerAnant Agarwal
    • Andrew E. AyersRichard SchoolerAnant Agarwal
    • G06F9/44G06F9/45
    • G06F11/3636G06F11/3624G06F11/3644
    • 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.
    • 程序执行数据跟踪是通过在程序执行过程中记录数值集和指令跟踪进行测量而创建的。 通过根据指令轨迹从与从设定到第二指令的记录值相关联的第一指令向后或向前模拟指令,为第二指令确定值集合。 后向和前向模拟可以相互补充。 对于反向模拟,优选地保持模拟指令表,其将在指令轨迹中遇到的程序指令与反转相关程序指令的操作的模拟指令相关联。 优选地,将一个或多个探针插入到程序中以保存其值可能难以确定的特定变量的值。 优选地,指示轨迹显示在数据轨迹旁边并与之相关联。
    • 2. 发明授权
    • Method for determining the degree to which changed code has been exercised
    • 确定已更换代码已被执行的程度的方法
    • US06748584B1
    • 2004-06-08
    • US09474389
    • 1999-12-29
    • Emmett WitchelChristopher D. MetcalfAndrew E. Ayers
    • Emmett WitchelChristopher D. MetcalfAndrew E. Ayers
    • G06F945
    • 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.
    • 一种用于确定相对于第一或基线程序二进制程序的第二程序二进制中的改变的代码的方法,其中第二程序是第一程序的不同版本,包括响应于符号表和/或控制流程表示来转换机器地址 两个程序二进制到符号。 第一个和第二个程序二进制文件使用翻译的符号进行拆分。 确定两个产生的拆卸之间的差异,并创建差异列表。 程序二进制文件之间的差异可以通过文本比较反汇编来确定,或者通过确定程序的控制流表示之间的差异来确定。 差异列表可以呈现给用户,或者替代地,可以传递到另一个进程以进行进一步处理,例如测试覆盖分析,代码变换分析或故障分析以及其他分析。 分析更改的代码覆盖范围包括在第二个程序中标记代码,该代码与第一个程序更改或不同。 然后在测试环境中执行第二程序,并且执行的代码被标记为已被执行。 接下来,第二程序在诸如生产环境的非测试环境中执行,并且在该第二环境中执行的代码被相应地标记。 最后,从各种标记的代码中,提供了在测试环境中未执行但在非测试环境中执行的已更改代码的列表。
    • 5. 发明授权
    • Method for simulating back program execution from a traceback sequence
    • 从回溯序列模拟程序执行的方法
    • US06804814B1
    • 2004-10-12
    • US09474680
    • 1999-12-29
    • Andrew E. AyersRichard SchoolerAnant Agarwal
    • Andrew E. AyersRichard SchoolerAnant Agarwal
    • G06F944
    • G06F11/3636G06F11/3624G06F11/3644
    • 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.
    • 程序执行数据跟踪是通过在程序执行过程中记录数值集和指令跟踪进行测量而创建的。 通过根据指令轨迹从与从设定到第二指令的记录值相关联的第一指令向后或向前模拟指令,为第二指令确定值集合。 后向和前向模拟可以相互补充。 为了进行反向仿真,优选地保持模拟指令表,其将在指令轨迹中遇到的程序指令与反转相关程序指令的操作的模拟指令相关联。 优选地,将一个或多个探针插入到程序中以保存其值可能难以确定的特定变量的值。 优选地,指示轨迹显示在数据轨迹旁边并与之相关联。 在一个实施例中,显示指令轨迹,并且在用户请求时指示针对期望值设置的指令的指令确定值集合。
    • 6. 发明授权
    • Early warning mechanism for enhancing enterprise availability
    • 提高企业可用性的预警机制
    • US06745383B1
    • 2004-06-01
    • US09474679
    • 1999-12-29
    • Anant AgarwalAndrew E. AyersRichard Schooler
    • Anant AgarwalAndrew E. AyersRichard Schooler
    • G06F944
    • G06F11/3676G06F11/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。
    • 7. 发明授权
    • Compiler for performing a loop fusion, dependent upon loop peeling
and/or loop reversal
    • 用于执行环路融合的编译器,取决于环路剥离和/或环路反转
    • US6070011A
    • 2000-05-30
    • US955075
    • 1997-10-21
    • Jiyang LiuRobert GottliebAndrew E. Ayers
    • Jiyang LiuRobert GottliebAndrew E. Ayers
    • G06F9/45
    • G06F8/433G06F8/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.
    • 编译方法采用循环融合来改进代码序列中的第一循环和第二循环的执行。 编译方法最初从一个循环中剥离一个或多个循环迭代,以使每个循环呈现相等数量的循环迭代。 此后,尝试熔化第一和第二回路,条件是所产生的熔断回路产生与第一回路和第二回路未熔合时相同的计算结果。 如果不符合条件,则在其中一个环路上执行环路反转,并再次尝试熔断动作; 如果循环的尝试融合动作不能满足条件,则在另一个循环上执行循环反转,并且再次尝试熔化动作。 组合的环路剥离/环路反向动作提供了比其他方式融合环路的更高概率。
    • 8. 发明授权
    • Method for conversion of a variable argument routine to a fixed argument
routine
    • 将可变参数例程转换为固定参数例程的方法
    • US6009273A
    • 1999-12-28
    • US953549
    • 1997-10-21
    • Andrew E. AyersJiyang Liu
    • Andrew E. AyersJiyang Liu
    • G06F9/40G06F9/45G06F9/44
    • G06F8/436G06F8/447G06F9/4425
    • A compiler method analyzes a program listing to identify a first set of subroutines therein, each of which accepts a variable number of arguments, converting the first set of subroutines into further sets of subroutines which accept fixed numbers of arguments. The method includes the steps of: locating subroutines in the program listing which accept a variable number of arguments and identifying which thereof comprise a first set of subroutines that can be altered to a form which accepts a fixed number of arguments; for each subroutine identified as part of the first set, determining call sites which pass arguments to each subroutine and determining a number and kind of said arguments to be passed therefrom; partitioning call sites to each subroutine of the first set into one or more groups, each group comprising call sites which pass an identical number and kind of arguments to an associated subroutine of said first set; duplicating each subroutine of said first set into plural second sets of N corresponding subroutines, wherein N is equal to the number of groups associated with the subroutine of the first set, and revising each one of said N corresponding subroutines to receive a number of fixed arguments to be passed by call sites partitioned into an associated group; and substituting in the program listing the N corresponding subroutines and revising call sites in each group to refer to an associated one of said N corresponding subroutines.
    • 编译器方法分析程序列表以识别其中的第一组子程序,其中每个子程序接受可变数量的参数,将第一组子程序转换为接受固定数量参数的另一组子程序。 该方法包括以下步骤:将程序列表中的子例程定位成接受可变数量的参数,并且识别其中的子例程可以被改变为接受固定数量的参数的形式的第一组子例程; 确定作为第一组的一部分识别的每个子程序,确定通过参数到每个子程序的调用站点,并确定要从其传递的所述参数的数量和种类; 将所述第一集合的每个子例程的呼叫站点划分成一个或多个组,每个组包括将相同数量和种类的参数传递给所述第一组的相关子程序的呼叫站点; 将所述第一组的每个子程序复制成多个第二组N个相应子程序,其中N等于与第一组子程序相关联的组的数量,并且修改所述N个相应子程序中的每一个以接收多个固定参数 被分配到关联组的呼叫站点传递; 并且在节目列表中替换N个相应的子例程并修改每个组中的呼叫站点以指代所述N个相应子例程中的相关联的一个。
    • 9. 发明授权
    • Compiler for reducing number of indirect calls in an executable code
    • 用于减少可执行代码中的间接调用数的编译器
    • US5857105A
    • 1999-01-05
    • US796095
    • 1997-02-05
    • Andrew E. AyersChun C. Gong
    • Andrew E. AyersChun C. Gong
    • G06F9/42G06F9/45
    • G06F8/443G06F9/4431
    • A compiler method converts an indirect call to a callee routine in a caller routine program listing, to an in-line listing of, or a direct call to, the callee routine in the caller routine. An indirect call is a call to a callee routine wherein the callee routine is not absolutely identified until run time of the program listing. The method includes the steps of: comparing plural prospective callee routines in the program listing with characteristics of an indirect caller site in the caller routine and eliminating prospective callee routines which evidence other than a match with those characteristics; employing call statistics associated with remaining prospective callee routines (and the caller routine) to eliminate further ones of the prospective callee routines to arrive at a set of one or more chosen prospective callee routines. The method concludes by in-lining at the indirect caller site at least one of the set of chosen prospective callee routines. As an alternative, a direct call can be inserted. At run time, the program listing is executed and, in the process of execution, the callee routine is absolutely identified. If the identified callee routine has already been in-lined (or there is a direct call present), it is executed and the program continues. If the identified callee routine is not present in the caller's code listing, via either an in-line listing or a direct call, an indirect call is executed to the identified callee routine.
    • 编译器方法将调用者程序列表中的被调用例程的间接调用转换为调用程序例程中的被调用例程的直列或直接调用。 间接呼叫是对被叫方程序的调用,其中在程序列表的运行时间之前并不绝对地识别被调用例程。 该方法包括以下步骤:将程序列表中的多个预期被调用例程与呼叫程序中的间接呼叫者站点的特征进行比较,并消除除了与这些特征匹配以外的证据的预期被叫方程序; 使用与剩余的预期被调用例程(和呼叫程序)相关联的呼叫统计信息来消除未来被叫方程序中的其他一些以获得一组一个或多个所选择的预期被叫方程序。 该方法通过在间接呼叫者站点内嵌至少一个所选择的预期被叫方案中的一个。 作为替代,可以插入直接呼叫。 在运行时,执行程序列表,并且在执行过程中绝对确定被调用程序。 如果确定的被调用例程已经被内联(或者存在直接呼叫),则执行该程序并继续该程序。 如果通过内联列表或直接呼叫在呼叫者的代码列表中不存在所标识的被呼叫程序,则对所识别的被呼叫程序执行间接呼叫。
    • 10. 发明授权
    • Early warning mechanism for enhancing enterprise availability
    • 提高企业可用性的预警机制
    • US07823134B2
    • 2010-10-26
    • US10857074
    • 2004-05-28
    • Anant AgarwalAndrew E. AyersRichard Schooler
    • Anant AgarwalAndrew E. AyersRichard Schooler
    • G06F9/44
    • G06F11/3676G06F11/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的颁发也可以是执行最近修改的未经验证的代码块的条件。