Storing and restoring snapshots of a computer process
First Claim
1. A method of tracing the activity of an expression, said method comprising the steps of:
- (a) specifying a machine-implemented process in which a trigger expression is to be traced;
(b) specifying the trigger expression to be traced in the machine-implemented process;
(c) storing the state of the trigger expression when it is active within the machine-implemented process without interrupting the process; and
(d) restoring the state of the trigger expression when requested.
1 Assignment
0 Petitions
Accused Products
Abstract
A method to trace a variable or other expression through a computer program is disclosed. A user determines the variable and the conditions upon which activity of the variable will be monitored. As a result of the invention, every time that variable is referenced in a memory operation or other activity by the program and the conditions set forth by the user are satisfied, the state of that variable is saved as a snapshot without interrupting or stopping execution of the program. The snapshots are accumulated in a history table. The history table can be retrieved and the state of the variable in any given snapshot can be restored. Other variables and expressions can be attached to the trigger variable and the states of these other variables at the time of the activity of the trigger variable may also be saved in the snapshot. The method may be incorporated into a program as a tracing device or a program product separate from the logical processing device executing the program.
-
Citations
27 Claims
-
1. A method of tracing the activity of an expression, said method comprising the steps of:
-
(a) specifying a machine-implemented process in which a trigger expression is to be traced;
(b) specifying the trigger expression to be traced in the machine-implemented process;
(c) storing the state of the trigger expression when it is active within the machine-implemented process without interrupting the process; and
(d) restoring the state of the trigger expression when requested. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18)
-
-
12. A method of tracing the activity of an expression in an executing computer program, said method comprising the steps of:
-
(a) specifying the computer program in which a trigger expression resulting in an L value during the execution of the computer program is to be traced;
(b) specifying the trigger expression and any optional attachment expressions to be traced in the computer program;
(c) imposing a condition onto the trigger expression;
(d) storing the state of the trigger expression and any optional attachment expressions when the computer program has accessed a location in memory pertaining to the trigger expression and the conditions are satisfied to create a snapshot, the step of storing accomplished without interrupting the process;
(e) creating a profile of the trigger expression comprising storing each snapshot;
(f) displaying the profile such that each snapshot can be displayed separately; and
(g) restoring the state of each snapshot, when requested.
-
-
13. A tracing device, comprising:
-
(a) a memory functionally connected to the digital logic device capable of executing a sequence of instructions;
(b) a program to monitor the activity of an expression during the execution of the sequence of instructions;
(c) a snapshot of the state of the expression every time the expression is active during the execution of the sequence of instructions;
(d) a history stored in the memory, the history being a plurality of snapshots;
(e) a state restorer which restores the state of the expression in a snapshot;
(f) a user interface by which a user may interact with the program, a snapshot, and the history.
-
-
19. A processing device to trace the activity of an expression in a computer device, said processing device, comprising:
-
(a) a processor;
(b) a memory functionally connected to the processor;
(c) a first computer program executing by the processor in which the expression is active;
(d) a second computer program to trace the activity of the expression within the memory during the execution of first computer program;
(e) a snapshot which stores the state expression every time the expression is active during the execution of the first computer program;
(f) an attachment expression profiler which stores the state at least one attachment expression with each snapshot;
(g) a history stored in the memory, the history being a plurality of snapshots;
(h) a display unit to display the history to a user; and
(i) an input device by which the user can input the expression to be traced.
-
-
20. A profiler to record the profile of a particular expression/variable within a program executing within a logical processing device, said profiler comprising:
-
(a) means to choose the particular expression/variable in a program executing within the logical processing device;
(b) means to record a snapshot of the particular expression/variable whenever the program addresses a memory location of the particular expression/variable without interrupting the program;
(c) means to collect a plurality of snapshots into a profile of the particular expression/variable, each snapshot corresponding to each time the program addressed the memory location of the particular expression/variable;
(d) means to display the profile of the particular expression/variable. - View Dependent Claims (21, 22, 23, 24, 26, 27)
-
-
25. An article of manufacture, comprising a data storage medium tangibly embodying a program of machine readable instructions executable by an electronic processing apparatus to perform method steps for operating an electronic processing apparatus, said method steps comprising the steps of:
-
(a) initiating a user interface to exchange data input/output with a user and an electronic processing apparatus;
(b) requesting a trigger expression from a user;
(c) requesting a program identification of a program in which the trigger expression is to be traced;
(d) causing the electronic processing apparatus to execute the identified program;
(e) storing the state of the trigger expression each time a memory operation occurs to the trigger expression during the executing identified program without interrupting or otherwise stopping execution of the identified program as a snapshot;
(f) maintaining the capability to restore each snapshot and display each snapshot to the user.
-
Specification