本章讨论 dbx 如何使用调用栈,以及在处理调用栈时如何使用 where 命令、hide 命令、unhide 命令和 pop 命令。
在多线程程序中,这些命令可对当前线程的调用栈进行操作。有关如何更改当前线程的信息,请参见thread 命令。
调用栈表示所有当前处于活动状态的例程,即已被调用但尚未返回至各自调用方的例程。栈帧是分配供一个函数使用的调用栈的一段。
由于调用栈是从高端内存(较大地址)延伸到低端内存,因此向上意味着向调用函数的帧移动(最终移动到 main() 或该线程的起始函数),向下意味着向被调用函数的帧移动(最终移动到当前函数)。程序在断点处停止、单步执行后或出错并生成核心转储文件时,用于例程执行的帧位于低端内存中。调用程序例程(如 main())位于高端内存中。
本章由以下部分组成: