Oracle® Developer Studio 12.5:使用 dbx 调试程序

退出打印视图

更新时间: 2016 年 6 月
 
 
第 7 章

使用调用堆栈

本章讨论 dbx 如何使用调用堆栈,以及在处理调用堆栈时如何使用 where 命令、hide 命令、unhide 命令和 pop 命令。

在多线程程序中,这些命令可对当前线程的调用堆栈进行操作。有关如何更改当前线程的信息,请参见thread 命令

调用堆栈代表当前处于活动状态的所有例程,即那些已调用但尚未返回各自调用方的例程。堆栈帧是分配供一个函数使用的调用堆栈的一段。

由于调用堆栈是从高端内存(较大地址)延伸到低端内存,因此向上意味着向调用方的帧移动(最终移动到 main() 或该线程的起始函数),向下意味着向被调用函数的帧移动(最终移动到当前函数)。程序在断点处停止、单步执行后或出错并生成信息转储文件时,用于例程执行的帧位于低端内存中。调用方例程(如 main())位于高端内存中。