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

退出打印视图

更新时间: 2016 年 6 月
 
 

where 命令

where 命令用于输出调用堆栈。对于 OpenMP 从属线程,如果相关帧仍处于活动状态,该命令还会输出主线程的堆栈跟踪。

本地模式语法

where

输出过程回溯。

where number

输出回溯中顶部的 number 帧。

where –f number

从第 number 帧开始回溯。

where –fp address-expression

认为 fp 寄存器中有 address-expression 值,并输出回溯。

where –h

包括隐藏的帧。

where –l

包括库名和函数名。

where –q

快速回溯(仅限于函数名)。

where –v

冗余回溯(包括函数参数和行信息)。

其中:

address-expression 是可产生地址或可用作地址的任何表达式。

number 是调用堆栈帧数。

上述任一选项都可以与线程 ID 或 LWP ID 一起使用,以便获得指定实体的回溯。

fp(帧指针)寄存器已损坏时(在这种情况下,dbx 无法正常重建调用堆栈),–fp 选项很有用。此选项为测试某值是否为正确的 fp 寄存器值提供了方便。一旦确定了此值为正确的值,就可以使用 assign 命令或 lwp 命令对其进行设置。

Java 模式语法

where [thread-ID]

输出方法回溯。

where -f [thread-ID] number

输出回溯中顶部的 number 帧。

如果指定了 f,则从第 number 帧开始回溯。

where -q [thread-ID]

快速回溯(仅限于方法名)。

where -v [thread-ID]

冗余回溯(包括方法参数和行信息)。

其中:

number 是调用堆栈帧数。

thread-IDdbx 样式的线程 ID 或为线程指定的 Java 线程名称。