Browse Prior Art Database

Automating Traversal of Function Call Graphs contained in Program Execution Trace

IP.com Disclosure Number: IPCOM000198336D
Publication Date: 2010-Aug-05

Publishing Venue

The IP.com Prior Art Database

Abstract

Analysis of program execution trace involves correlating information from three different sources in three different formats: 'function call graph' helps in following the control-flow of program, while the 'trace dump records' tell the values of program variables and the 'source code' is required for understanding the functionality of the program.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 23% of the total text.

Page 1 of 11

Automating Traversal of Function Call Graphs contained in Program Execution Trace

Introduction:

A program execution trace is one of the main tools to debug a program installed on customer's site. Traces can provide minute details like values of variables, function call sequence, etc. However, the 'fine granularity' of details makes the trace information very huge and difficult to analyze quickly. The trace analysis involves drilling down to the statement of the source code, which triggered the sequence of events resulting in program failure or unexpected result.

While analyzing the trace information for situations like program-crash, a user goes through all available trace records looking for an erroneous trace record. Once an erroneous trace record is found, then user drills down further in the corresponding function call graph and finds a function from where erroneous behavior started. Moreover, there is always a set of functions, statements and variables, which are very important for debugging purpose, as they control the behavior of program. The user always keeps a close watch on these important portions of the source code. And last but not the least, the user always needs to understand the source code associated with the trace being analyzed.

In summary, the trace analysis by a user can be considered as a traversal of huge function call graph with constant watch on important parts of source code. This analysis requires information from three different sources in three different formats. The 'function call graph' helps in following the control-flow of program, while the 'trace dump records' tell the values of variables and the 'source code' is required for understanding the functionality of the program.

There have been attempts to make this manual trace analysis easy [ 1 ]. It mainly addresses the problem of correlating trace information with the associated source code by presenting all the three types of information: Trace records, Function Call Graph and Source code together in a single window, which makes correlation easy for the user. The proposed system goes one step further and provides facilities to automate the traversal of function call graph. The Traversal Operators can take the users through different levels of function call graph. Also, an operator can simply continue the depth first search ( DFS ) traversal of function call graph, until a User Specified Condition is satisfied for a trace record. Then all the information will be displayed corresponding to this matching trace record.

Advantages:

The combination of traversal operators and user specified conditions will provide the following advantages over the existing solutions:

1. All the three kinds of information: trace records, function call graphs and the

1

Page 2 of 11

associated source code alongwith the traversal
operators can be presented to the end user in a standard software debugger's look and feel. Graphical User Interface ( GUI ) of
a software debugger...