| |||
| Home > The Call Graph > Call graph layout > How the hierarchy is built | |||
The hierarchy of functions, as presented in the call graph, is built based on the call chain captured during execution. 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.
To illustrate, if the function main calls
function a which in turn calls function b,
it appears as shown in Figure 8.2.
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. This is
shown in Figure 8.3.
The call graph presents a simple call hierarchy, but real-world algorithms describe hierarchies far more complex than those shown in Figure 8.2 and Figure 8.3. Rather than present the call graph with all of these connections visually represented as a spider web of call arrows, the call graph uses a simple method to determine whether or not to draw a call line.