Design of tags for lookup of non-volatile registers
First Claim
1. A computer-implemented method for locating information that applies to a particular address in a program comprising:
- locating a particular set of data that applies to a particular object, the particular object being either a primary object or a shared object that is loaded into an address space during execution of the program, each object includes a set of compiled instructions and occupies a respective address range;
determining a particular address range to which the particular set of data applies;
determining whether the particular address range includes the particular address; and
if the particular address range includes the particular address, searching the particular set of data for the information that applies to the particular address.
2 Assignments
0 Petitions
Accused Products
Abstract
Stack tracebacks are performed in debugging and exception handling routines, and involve providing the values of non-volatile registers at the time of entry into each function in a call chain. One stack traceback technique includes performing the following two steps for each virtual address at which a function call in the call chain is made: (1) locating the tag section whose virtual address range includes the virtual address; and (2) locating a tag in the tag section found in step (1), whose virtual address range includes the virtual address. The tag found in step (2) indicates which of the values, if any, respectively held by the non-volatile registers upon entry to the particular function in which the above function call is made, are stored in a stack frame for the particular function at the time of the function call.
-
Citations
23 Claims
-
1. A computer-implemented method for locating information that applies to a particular address in a program comprising:
-
locating a particular set of data that applies to a particular object, the particular object being either a primary object or a shared object that is loaded into an address space during execution of the program, each object includes a set of compiled instructions and occupies a respective address range; determining a particular address range to which the particular set of data applies; determining whether the particular address range includes the particular address; and if the particular address range includes the particular address, searching the particular set of data for the information that applies to the particular address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product for locating information that applies to a particular address in a program comprising:
-
code for locating a particular set of data that applies to a particular object, the particular object being either a primary object or a shared object that is loaded into an address space during execution of the program, each object includes a set of compiled instructions and occupies a respective address range; code for determining a particular address range to which the particular set of data applies; code for determining whether the particular address range includes the particular address; code for searching, if the particular address range includes the particular address, the particular set of data for the information that applies to the particular address; and a computer-readable storage medium that stores the codes. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method for retrieving, when execution of a program reaches a particular address, values of one or more non-volatile registers stored, upon entry into a function, in a stack frame, the method comprising:
-
locating a particular tag, the particular tag indicates that values of a non-contiguous subset of the registers, upon entry to the function, are stored in the stack frame for the function, the particular tag further indicates a particular address range to which the particular tag applies; determining whether the particular address range includes the particular address of program execution; and retrieving the values of the non-contiguous subset of the registers in the stack frame for the function. - View Dependent Claims (15)
-
-
16. A computer program product for retrieving, when execution of a program reaches a particular address, values of one or more non-volatile registers stored, upon entry into a function, in a stack frame, the product comprising:
-
code for locating a particular tag, the particular tag indicates that values of a non-contiguous subset of the registers upon entry to the function are stored in the stack frame for the function, the particular tag further indicates a particular address range to which the particular tag applies; code for determining whether the particular address range includes the particular address of program execution; code for retrieving the values of the non-contiguous subset of the registers in the stack frame for the function; and a computer-readable storage medium that stores the codes. - View Dependent Claims (17)
-
-
18. A method for retrieving a value of a particular register when execution of a program reaches a particular address within a function, the method comprising:
-
locating a tag that indicates that values of registers are stored when the program is executing within an address range, the tag further indicates a particular address range to which the tag applies; determining whether the particular address range includes the particular address within the function; and retrieving the value of the particular register.
-
-
19. A computer program product for retrieving a value of a particular register when execution of a program reaches a particular address within a function, the product comprising:
-
code for locating a tag that indicates that values of registers are stored when the program is executing within an address range, the tag further indicates a particular address range to which the tag applies; code for determining whether the particular address range includes the particular address within the function; code for retrieving the value of the particular register; and a computer-readable storage medium that stores the codes.
-
-
20. A computer-implemented method for reconstructing one or more sets of values, each set of values corresponding to a function in a function call chain, the method comprises:
-
locating a set of data; determining a particular address range to which the set of data applies; determining whether a particular program address of a particular function in the function call chain is within the particular address range; retrieving the set of values within the set of data; and repeating the locating, both determining, and the retrieving for all functions in the function call chain. - View Dependent Claims (21, 22, 23)
-
Specification