Code execution visualization using software fingerprinting
First Claim
1. A method for graphically presenting information pertaining to function calls during execution of a process on a computer system, the method comprising the steps of:
- obtaining a plurality of call stack samples,wherein the samples are based on occurrence of a specific event, andwherein the event is selected from the group consisting of;
a cache miss, an execution stall, an operating system event, and a call to at least one specific function from a list of automatically suggested functions;
displaying, for at least a portion of the samples, a chart of call stack depth versus sample number;
highlighting a portion of the display in response to selection of a location in the chart or selection of a function; and
displaying a list of functions associated with the highlighted portion of the display.
2 Assignments
0 Petitions
Accused Products
Abstract
A system, method, and computer program for analyzing code execution and software performance characteristics are disclosed. Samples of executing code may be taken based on any of a number of various triggers. For example, samples may be triggered based on function calls, such as malloc calls. Alternatively, samples may be triggered based on occurrence of a specified event. Code execution is graphically displayed such that certain patterns may be easily identified. Multiple redundant function calls and areas of code having excessively deep function calls can be readily spotted. Such areas represent opportunities for performance optimization.
44 Citations
39 Claims
-
1. A method for graphically presenting information pertaining to function calls during execution of a process on a computer system, the method comprising the steps of:
-
obtaining a plurality of call stack samples, wherein the samples are based on occurrence of a specific event, and wherein the event is selected from the group consisting of;
a cache miss, an execution stall, an operating system event, and a call to at least one specific function from a list of automatically suggested functions;displaying, for at least a portion of the samples, a chart of call stack depth versus sample number; highlighting a portion of the display in response to selection of a location in the chart or selection of a function; and displaying a list of functions associated with the highlighted portion of the display. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 37, 39)
-
-
20. A method for analyzing code execution, the method comprising the steps of:
-
obtaining a plurality of samples, wherein each of the samples includes a function call stack associated with occurrence of a specific event during code execution; displaying, for at least a portion of the samples, a chart of call stack depth versus sample number; highlighting a call stack in response to selection of a location in the chart; indicating tenure of each function in the highlighted call stack; and displaying a list of functions in the highlighted call stack. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
38. A program storage device, readable by a programmable control device, comprising machine-readable instructions stored thereon for causing the programmable control device to:
-
obtain a plurality of call stack samples, wherein the samples are based on occurrence of a specific event, and wherein the event is selected from the group consisting of;
a cache miss, an execution stall, an operating system event, and a call to at least one specific function from a list of automatically suggested functions;display, for at least a portion of the samples a chart of call stack depth versus sample number; highlight a portion of the display in response to selection of a location in the chart or selection of a function; and display a list of functions associated with the highlighted portion of the display.
-
Specification