Oracle® Solaris Studio 12.4:使用 dbx 调试程序

退出打印视图

更新时间: 2015 年 1 月
 
 

作用域转换搜索路径

    当您发出包含表达式的调试命令时,将按以下顺序查找表达式中的符号。dbx 会按编译器在当前访问作用域中进行操作的同样方式解析这些符号。

  1. 在使用当前访问作用域的当前函数的作用域内,如果程序在嵌套块中停止,则 dbx 会在该块内搜索,然后在所有封装块的作用域中搜索。

  2. 仅限于 C++: 当前函数的类及其基类的类成员。

  3. 仅限于 C++: 当前名字空间。

  4. 当前函数的参数。

  5. 立即封装模块,通常为包含当前函数的文件。

  6. 供此共享库或可执行文件专用的符号。可使用链接程序作用域来创建这些符号。

  7. 主程序的全局符号,然后为共享库的全局符号。

  8. 如果上述搜索都不成功,则 dbx 会假定您正在引用其他文件中的专用或文件静态变量或函数。dbx 可选择根据 dbxenv 设置 scope_look_aside 的值在每个编译单元中搜索文件静态符号。

无论 dbx 使用符号的哪个具体值,它都会先沿此搜索路径查找。如果 dbx 找不到符号,它会报告错误。