Instruction operand tracing for software debug
First Claim
1. A method comprising:
- receiving a user selection of a first instruction from a list of instructions that executed during a processor simulation; and
tracing an operand in the first instruction directly to a use of the operand in a second instruction in the list of instructions by following operand dependencies between such first and second instructions,wherein tracing comprises using attributes of the first instruction to find the second instruction and using a program counter value to look up attributes of the first instruction in an instruction operand map that provides attributes of each instruction, including instruction type and type of registers used by such instruction type for operands and to determine for each register type a physical address.
1 Assignment
0 Petitions
Accused Products
Abstract
A tool that enables a user to perform instruction operand tracing during debug is presented. While executing microcode on a simulator, a history of register and memory values is saved. A graphic user interface uses these values to present a view of the microcode in a thread history. The user can use the thread history to select any given cycle time of the simulation, and switch over to a thread window (or code list view). The instruction that executed at the cycle of interest is marked in the code list view, and right-clicking on the code line, the user is given options, including an option to jump backward in time to the code line where a source variable was set and/or the option to jump forward in time to a code line that used a result variable.
-
Citations
22 Claims
-
1. A method comprising:
-
receiving a user selection of a first instruction from a list of instructions that executed during a processor simulation; and tracing an operand in the first instruction directly to a use of the operand in a second instruction in the list of instructions by following operand dependencies between such first and second instructions, wherein tracing comprises using attributes of the first instruction to find the second instruction and using a program counter value to look up attributes of the first instruction in an instruction operand map that provides attributes of each instruction, including instruction type and type of registers used by such instruction type for operands and to determine for each register type a physical address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An article comprising:
-
a storage medium having stored thereon instructions that when executed by a machine result in the following; receiving a user selection of a first instruction from a list of instructions that executed during a processor simulation; and tracing an operand used in the first instruction directly to a use of the operand in a second instruction in the list of instructions by following operand dependencies between such first and second instructions, wherein tracing comprises; determining attributes of the first instruction selected by the user; and using the attributes of the first instruction selected by the user to find the second instruction, wherein determining attributes comprises; using a program counter value to look up the attributes in an instruction operand map that provides attributes of each instruction, including instruction type and type of registers used by such instruction type for operands and to determine for each type of register a physical address. - View Dependent Claims (18, 19)
-
-
20. A storage medium having executable instructions stored and configured to be executed by a processor, the executable instructions comprising:
-
executable instructions to render a window having a view of microcode instructions that executed on a processor simulator during a simulation and for which a simulation history has been collected by the processor simulator; wherein executable instructions to render a window having the view comprises executable instructions to provide a tracing option in a menu presented to a user for one of the microcode instructions as an instruction of interest, the tracing option being usable to trace any variable used by the instruction of interest in the simulation history directly to a second instruction in which a most recent change to or next use of such variable occurred, the executable instructions further comprising executable instructions to; receive a user selection of the instruction of interest; and trace an operand in the instruction of interest directly to a use of the operand in the second instruction of the microcode instructions by following operand dependencies between the instruction of interest and the second instructions, wherein executable instructions to trace comprises executable instructions to use a program counter value to look up attributes in an instruction operand map that provides attributes of each instruction, including instruction type and type of registers used by such instruction type for operands and to determine for each type of register a physical address. - View Dependent Claims (21, 22)
-
Specification