Debugging tool and method for tracking code execution paths
First Claim
1. A computer-based method for determining a code execution path, comprising:
- retrieving a file including assembly code for functions of a program and data for a stack maintained by a processor running the program, wherein the stack includes frames corresponding to at least some of the functions;
identifying an execution path gap between a first one and a second one of the functions corresponding to a first one and second one of the stack frames; and
determining code execution paths for the gap between the first and second functions.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for determining code execution paths based on stack information provided in a core file. Stack information is processed to determine flow gaps between pairs of functions identified in frames in the stack. Direct call paths are determined between the functions by determining every direct path between the two functions by scanning the source function for called functions and then repeatedly scanning the called functions until a branch reaches the destination function or terminates with a function other than the destination function. In another embodiment, the paths are determined by identifying call branches from the source function and terminating the following of a call branch whenever a repeat function is found. In another embodiment, the result set of potential paths is generated by identifying branches from the source function but only continuing to follow a branch when intermediate functions are followed by a restore function.
-
Citations
17 Claims
-
1. A computer-based method for determining a code execution path, comprising:
-
retrieving a file including assembly code for functions of a program and data for a stack maintained by a processor running the program, wherein the stack includes frames corresponding to at least some of the functions;
identifying an execution path gap between a first one and a second one of the functions corresponding to a first one and second one of the stack frames; and
determining code execution paths for the gap between the first and second functions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for debugging code, comprising:
-
receiving a core file;
identifying a gap in a code execution path between a source function and a destination function in the core file;
determining call branches from the source function by scanning the source function for all functions called by the source function; and
identifying a set of potential flow paths for the gap by following function calls in each of the call branches that are associated with a restore instruction until a last function in a branch is reached not matching the destination function or the destination function is reached. - View Dependent Claims (12, 13)
-
-
14. A computer system for use in debugging code, comprising:
-
a network interface communicating with a communications network and receiving debugging requests including a core file;
a data storage device for storing the core file; and
a debugger including a mechanism adapted to determine code execution paths between functions in a stack defined in the core file. - View Dependent Claims (15, 16, 17)
-
Specification