8.3.1. 如何构建层次结构

调用图中显示的函数层次结构是根据执行期间捕获的调用链构建的。 源函数放在最左列中,它调用的函数放在其右侧的列中。 这些函数调用的函数放在它们右侧的列中,依此进行,直到所有函数放置完毕。 对于此放置行为有一个附加说明。 如果在层次结构的多个级别上调用了某一函数,则在调用图中应将该函数尽量向左放。

举例说明,如果函数 main 调用函数 a,而后者又调用函数 b,则调用图如Figure 8.2 所示。

Figure 8.2. 简单调用层次结构

简单调用层次结构

如果 main 函数不但调用函数 a,还调用函数 b,则函数 b 将放在层次结构中距离 main 更近的更高位置。 如Figure 8.3 所示。

Figure 8.3. 包含多个调用的调用层次结构

包含多个调用的调用层次结构

调用图显示的是一个简单的调用层次结构,但实际应用中的算法所描述的层次结构比Figure 8.2Figure 8.3 中所示的层次结构要复杂得多。 调用图采用一种简单的方法来确定是否绘制调用线,而不是使用看似蜘蛛网的调用箭头呈现所有连接。

Copyright © 2007,2008 ARM Limited. All rights reserved。ARM DUI 0414CC
Non-Confidential