Oracle Solaris Studio 12.2:使用 dbx 调试程序

更改访问作用域

下列命令是更改访问作用域的最常用方法:

debug 命令和 attach 命令可设置初始访问作用域。

遇到断点时,dbx 会将访问作用域设置为当前位置。如果将 stack_find_source 环境变量(请参见设置 dbx 环境变量)设置为 ON,则 dbx 会尝试查找并激活有源代码的栈帧。

使用 up 命令(请参见up 命令)、down 命令(请参见down 命令)、frame number 命令(请参见frame 命令)或 pop 命令(请参见pop 命令)更改当前栈帧时,dbx 根据新的栈帧中的程序计数设置访问作用域。

仅当使用 list functionlist file 命令时,list 命令(请参见list 命令)使用的行号位置才会更改访问作用域。在设置访问作用域后,list 命令的行号位置会设置为访问作用域的第一个行号。以后使用 list 命令时,list 命令的当前行号位置会更新,但只要是列出当前文件中的代码行,访问作用域就不会更改。例如,如果键入以下内容,dbx 会列出 my_func 源的开头,并将访问作用域更改为 my_func


(dbx) list my_func

如果键入以下内容,dbx 会列出当前源文件的第 127 行,但不会更改访问作用域。


(dbx) list 127

使用 file 命令或 func 命令更改当前文件或当前函数时,访问作用域也会相应更新。