Real-time tracing of dynamic local data in high level languages in the presence of process context switches
First Claim
Patent Images
1. Apparatus for aiding in debugging of real-time programs executing on a target processor, which programs do not contain special trace instructions, comprising:
- a. means for capturing inputs to and outputs from the target processor; and
b. means for real-time tracing of values of at least one local variable referenced in one of the programs, using the inputs to and outputs from the target processor, during a process context switch on the target processor, which process context switch involves the at least one local variable.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved real-time debugger accommodates high level language computer programs containing dynamic local data and process context switches. Information thus acquired is used to deduce the stack frame pointer. Inputs and outputs of a target processor are tapped to capture key instructions, particularly indicating context switches. A local tag memory in the debugger stores images of stack frames during context switches.
128 Citations
30 Claims
-
1. Apparatus for aiding in debugging of real-time programs executing on a target processor, which programs do not contain special trace instructions, comprising:
-
a. means for capturing inputs to and outputs from the target processor; and b. means for real-time tracing of values of at least one local variable referenced in one of the programs, using the inputs to and outputs from the target processor, during a process context switch on the target processor, which process context switch involves the at least one local variable. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. Apparatus for aiding in debugging of a real-time program executing on a target processor, the program comprising a plurality of procedures, each call to one of the procedures corresponding to a respective stack frame, the apparatus comprising:
-
a. means for capturing inputs to and outputs from the target processor; b. means (120) for receiving;
a selection by a user of local data to be traced, the local data to be traced being from a plurality of procedures; and
data derived from a symbol table generated on a host processor as a result of compilation of a source-code version of the program;c. second means for capturing a frame pointer of the program from the inputs and outputs from the target processor, by decoding op-codes of the program, which op codes are captured by the means for capturing; d. a local tag table memory for storing the selection, the local tag table memory having addressable locations and an output for supplying an indication of whether a particular local datum is part of the selection, the local tag memory containing a plurality of sets of tag information relating to respective procedure stack frames; and e. logic means for specifying, based on the inputs and outputs, the data derived from the symbol table, and the frame pointer, a given one of the locations in the local tag table memory which corresponds to the local datum within the given procedure, using a segmented addressing scheme; wherein the capturing means provides values of the local data in the selection under the control of the local tag table memory.
-
-
28. A method for tracing local data used in a high level language program which runs on a target processor, the method comprising the steps of:
-
a) capturing signals input to and output from the target processor, which captured signals include addresses, data, status signals, and contents of a program counter of the target processor; b) continuously sampling the contents of the program counter; c) testing whether the contents of the program counter fall within a set of procedure code bounds; d) decoding op codes of instructions being executed on the target processor, based on the captured signals; e) deducing a stack frame pointer based on decoded op codes which are from the set of op codes which indicate both procedure calls and process context switches, at least one of the decoded op codes indicating a process context switch; f) when the results of the testing step are positive; i) identifying the local data based on an offset from the stack frame pointer; ii) indexing a local tag memory associated with the contents of the program counter using the offset; iii) determining from the indexed tag memory that the local data is to be traced; and iv) capturing the local data. - View Dependent Claims (29, 30)
-
Specification