Generating stack traces of call stacks that lack frame pointers
AssigneeRed Hat, Inc.
InventorSøren Sandmann Pedersen
Life of this patent
Estimating the term…
Abstract
A processing device executing an application analyzer analyzes a call stack having a plurality of stack frames to identify potential return addresses for the plurality of stack frames. The processing device records a value of each of the potential return addresses and records a location on the call stack for each of the potential return addresses. The processing device then determines which of the potential return addresses are actual return addresses based on debugging information and the recorded locations of the potential return addresses. The processing device generates a stack trace based on the actual return addresses.
Claims20
A method of determining information about a runtime state of an application, comprising:
- analyzing, by a processing device executing an application analyzer, a call stack of the application, the call stack having a plurality of stack frames to identify potential return addresses for the plurality of stack frames;
- recording a value of each of the potential return addresses;
- recording a location for each of the potential return addresses, the location being a location on the call stack;
- determining which of the potential return addresses are actual return addresses based on debugging information and the recorded locations and values of the potential return addresses;
- and
- generating a stack trace based on the actual return addresses.
A computer readable storage medium including instructions that, when executed by a processing device, cause the processing device to perform a method of determining information about a runtime state of an application comprising:
- analyzing, by a processing device executing an application analyzer, a call stack of the application, the call stack having a plurality of stack frames to identify potential return addresses for the plurality of stack frames;
- recording a value of each of the potential return addresses;
- recording a location for each of the potential return addresses, the location being a location on the call stack;
- determining which of the potential return addresses are actual return addresses based on debugging information and the recorded locations and values of the potential return addresses;
- and
- generating a stack trace based on the actual return addresses.
A computing device comprising:
- a memory to store instructions for an application analyzer;
- and
- a processing device, connected with the memory, to execute the instructions, wherein the instructions case the processing device to:
- analyze a call stack of an application, the call stack having a plurality of stack frames to identify potential return addresses for the plurality of stack frames;
- record a value of each of the potential return addresses;
- record a location for each of the potential return addresses, the location being a location on the call stack;
- determine which of the potential return addresses are actual return addresses based on debugging information and the recorded locations and values of the potential return addresses;
- and
- generate a stack trace based on the actual return addresses.
Dependencies are inferred from the claim text.