Level-crossing memory trace inspection queries
First Claim
1. A memory inspection system which provides derived data values from an execution trace, in response to queries from a high-level tool having a data access component (DAC), the memory inspection system comprising:
- at least one processor;
a digital memory in operable communication with the processor; and
a DAC adapter which includes a heuristic computation code and an interface, the DAC adapter being configured to, upon execution by the processor, perform a process that includes the following;
(a) receive in the interface a query which specifies a memory cell and an execution time t,(b) determine automatically that the execution trace fails to expressly specify a known value for the memory cell at the time t,(c) with the processor, execute the heuristic computation code, whereby the heuristic computation code produces a derived value for the memory cell at the time t based on information in the execution trace, and(d) provide in the interface a response to the query, the response including the derived value together with an indication that the value provided in the response for the memory cell at the time t is derived, inclusion of the derived value based at least upon uncertainty as to the value of the memory cell at time tin view of the execution trace.
1 Assignment
0 Petitions
Accused Products
Abstract
Described technologies extend the information available from an execution trace of a program by providing heuristically-derived values for memory contents when the trace does not include data expressly showing the value of a memory cell at a particular execution time. Various heuristics are described. The heuristics may use information about the memory cell at other times to produce the derived value. Some heuristics use other trace data, such as whether the memory cell is in a stack, whether there are gaps in the trace, or whether garbage collection or compilation occurred near the time in question. Grounds for the derived value are reported along with the derived value. A time-travel debugger or other program analysis tool can then present the derived values to users, or make other use of the derived values and grounds to assist debugging and other efforts to improve the functioning of a computing system.
55 Citations
20 Claims
-
1. A memory inspection system which provides derived data values from an execution trace, in response to queries from a high-level tool having a data access component (DAC), the memory inspection system comprising:
-
at least one processor; a digital memory in operable communication with the processor; and a DAC adapter which includes a heuristic computation code and an interface, the DAC adapter being configured to, upon execution by the processor, perform a process that includes the following; (a) receive in the interface a query which specifies a memory cell and an execution time t, (b) determine automatically that the execution trace fails to expressly specify a known value for the memory cell at the time t, (c) with the processor, execute the heuristic computation code, whereby the heuristic computation code produces a derived value for the memory cell at the time t based on information in the execution trace, and (d) provide in the interface a response to the query, the response including the derived value together with an indication that the value provided in the response for the memory cell at the time t is derived, inclusion of the derived value based at least upon uncertainty as to the value of the memory cell at time tin view of the execution trace. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-implemented memory inspection process which provides derived data values of memory cells from an execution trace, the memory inspection process comprising:
-
receiving a query which specifies a plurality of memory cells and an execution time t; with a computer processor, executing a heuristic computation which searches at least a portion of the execution trace for state information of the memory cells; obtaining as results of the heuristic computation a respective derived value of each memory cell and a respective ground of that derived value, the obtained grounds comprising at least two of the following grounds;
known-past-value, known-current-value, known-future-value; andreporting the derived values of the memory cells, together with at least one of the grounds, in a response to the query; wherein the reporting comprises providing information about the value of the memory cells which is not limited to any values that were recorded into the execution trace at time t, and the derived values are based at least in part upon uncertainty as to the value of one or more of the memory cells at time tin view of the execution trace. - View Dependent Claims (10, 11, 12)
-
-
13. A computer readable storage medium configured with code which upon execution by a computer processor performs a trace-based memory inspection process, the process comprising:
-
receiving a query which specifies a memory cell and an execution time t; with the computer processor, determining that an execution trace fails to expressly specify a known value for the memory cell at the time t; with the computer processor, executing a heuristic computation which searches at least a portion of the execution trace for state information of the memory cell; obtaining as results of the heuristic computation a derived value of the memory cell and a ground of that derived value; and reporting the derived value of the memory cell, together with the ground, in a response to the query; wherein the reporting comprises providing information about the value of the memory cell which is not limited to any values that were recorded into the execution trace at time t, and the derived values are based at least in part upon uncertainty as to the value of one or more of the memory cells at time tin view of the execution trace. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification