9.2 How the Call Graph view hierarchy is built

The hierarchy of functions, as presented in the Call Graph view, is built based on the call chains sampled during execution. An understanding of how Streamline displays this hierarchy helps you to maximize the utility of the view.

Note

The Call Graph view depends on call stack unwinding, an option you can set using the Capture Options dialog box.

The originating function is placed in the far left column and functions it calls are placed in the column to its right. Functions that these functions call are placed in a column to the right of that and so on down the line, until all of the functions have been placed. There is a caveat to this placing behavior. If a function is called at multiple levels of the hierarchy, it is placed as far left as possible in the Call Graph view.

To illustrate, if the function main calls function a which in turn calls function b, it looks like this:

Figure 9-2 A simple hierarchy

A simple hierarchy

If, in addition to function a, main also calls function b, function b is put in a higher place in the hierarchy, nearer to main, it might look like this:

Figure 9-3 Call Hierarchy with Multiple Calls

Call Hierarchy with Multiple Calls

The Call Graph view presents a simple call hierarchy, but real-world algorithms describe hierarchies far more complex than those shown in the figures. Rather than present the Call Graph view with all of these connections visually represented as a spider web of call arrows, the Call Graph view uses a simple method to determine whether or not to draw a call line.

Related concepts
Call Graph view overview
Related tasks
Using the mini-map to navigate the Call Graph view
Related reference
Call Graph view function contextual menu options
Call Graph view whitespace contextual menu options
Call Graph view toolbar options
Call Graph view keyboard shortcuts
Non-ConfidentialPDF file icon PDF versionARM DUI0482M
Copyright © 2010-2013 ARM. All rights reserved.