Execution control with cross-level trace mapping
First Claim
1. A trace replay execution control system, comprising:
- a processor;
a memory in operable communication with the processor;
a trace recorded during an execution of a program in conjunction with calls into a runtime of the program and a kernel, wherein the trace includes trace entries which include a record of activities of native code instructions which executed in at least one thread of the program, wherein the activities of the native code instructions are traced as the program is executed, and wherein the trace does not include any executing instance of the runtime of the program;
a source code of at least a portion of the program;
a source-intermediate mapping which automatically maps between the source code of at least the portion of the program and an intermediate representation of the source code of at least the portion of the program;
an intermediate-native mapping which automatically maps between the intermediate representation of the source code of at least the portion of the program and the trace; and
an execution controller in a software tool, wherein the execution controller is configured to, upon execution by the processor, control a replay execution of the trace in response to receiving trace replay execution control requests, in which the source code is correlated with the trace entries through the source-intermediate mapping and the intermediate-native mapping.
1 Assignment
0 Petitions
Accused Products
Abstract
Described technologies aid execution control during replays of traced program behavior. Cross-level mapping correlates source code, an intermediate representation, and native instructions in a trace. The trace includes a record of native code instructions which were executed by a runtime-managed program. The trace does not include any executing instance of the runtime. Breakpoints are set to align trace locations with source code expressions or statements, and to skip over garbage collection and other code unlikely to interest a developer. A live debugging environment is adapted to support trace-based reverse execution. An execution controller in a debugger or other tool may utilize breakpoint ranges, cross-level mappings, backward step-out support, and other items to control a replay execution of the trace. Aspects of familiar compilers or familiar runtimes may be re-purposed for innovative execution control which replays previously generated native code, as opposed to their established purpose of generating native code.
-
Citations
20 Claims
-
1. A trace replay execution control system, comprising:
-
a processor; a memory in operable communication with the processor; a trace recorded during an execution of a program in conjunction with calls into a runtime of the program and a kernel, wherein the trace includes trace entries which include a record of activities of native code instructions which executed in at least one thread of the program, wherein the activities of the native code instructions are traced as the program is executed, and wherein the trace does not include any executing instance of the runtime of the program; a source code of at least a portion of the program; a source-intermediate mapping which automatically maps between the source code of at least the portion of the program and an intermediate representation of the source code of at least the portion of the program; an intermediate-native mapping which automatically maps between the intermediate representation of the source code of at least the portion of the program and the trace; and an execution controller in a software tool, wherein the execution controller is configured to, upon execution by the processor, control a replay execution of the trace in response to receiving trace replay execution control requests, in which the source code is correlated with the trace entries through the source-intermediate mapping and the intermediate-native mapping. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A trace replay execution control method, comprising:
-
identifying a traced managed program which is configured to execute in conjunction with calls into a runtime of the traced managed program and a kernel and configured to be traced during the execution; receiving a trace replay execution control request, wherein the trace replay execution control request is received in a software tool running on a computing system; based on receiving the trace replay execution control request, automatically mapping between a source code of the traced managed program and an intermediate representation of the source code of the traced managed program, and automatically mapping between the intermediate representation of the source code of the traced managed program and a trace recorded during the execution of the traced managed program, wherein the trace includes trace entries which include a record of activities of native code instructions which executed in at least one thread of the traced managed program by at least one processor, wherein the activities of the native code instructions are traced as the traced managed program is executed, and wherein the trace does not include any executing instance of the runtime of the traced managed program; and performing trace native code instructions which correspond to the trace replay execution control request, in which the source code is correlated with the trace entries through the source-intermediate mapping and the intermediate-native mapping, thereby replaying execution of a portion of the trace. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable storage medium stored with data and instructions to perform, upon execution by a processor in operable communication with a memory, a trace replay execution control method, the trace replay execution control method comprising:
-
identifying a traced managed program which is configured to execute in conjunction with calls into a runtime of the traced managed program and a kernel and configured to be traced during the execution; receiving a trace replay execution control request, wherein the trace replay execution control request is received in a software tool running on a computing system; based on receiving the trace replay execution control request, automatically mapping between a source code of the traced managed program and an intermediate representation of the source code of the traced managed program, and automatically mapping between the intermediate representation of the source code of the traced managed program and a trace recorded during the execution of the traced managed program, wherein the trace includes trace entries which include a record of activities of native code instructions which executed in at least one thread of the traced managed program by at least one processor, wherein the activities of the native code instructions are traced as the traced managed program executed, and wherein the trace does not include any executing instance of the runtime of the traced managed program; and performing trace native code instructions which correspond to the trace replay execution control request or setting a breakpoint on a trace native code instruction, in which the source code is correlated with the trace entries through the source-intermediate mapping and the intermediate-native mapping, thereby controlling replay execution of the trace. - View Dependent Claims (18, 19, 20)
-
Specification