JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:使用 dbx 调试程序     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  dbx 入门

2.  启动 dbx

启动调试会话

调试信息转储文件

在相同的操作环境中调试信息转储文件

如果信息转储文件被截断

调试不匹配的信息转储文件

消除共享库问题

注意事项

使用进程 ID

dbx 启动序列

设置启动属性

将编译时目录映射到调试时目录

设置 dbx 环境变量

创建自己的 dbx 命令

编译调试程序

使用 -g 选项进行编译

使用独立的调试文件

创建独立的调试文件

调试优化代码

参数与变量

内联函数

编译时未使用 -g 选项的代码

共享库要求使用 -g 选项以获得完全 dbx 支持

完全剥离的程序

退出调试

停止进程执行

dbx 中分离进程

中止程序而不终止会话

保存和恢复调试运行

使用 save 命令

将系列调试运行另存为检查点

恢复已保存的运行

使用 replay 保存和恢复

3.  定制 dbx

4.  查看和导航到代码

5.  控制程序执行

6.  设置断点和跟踪

7.  使用调用堆栈

8.  求值和显示数据

9.  使用运行时检查

10.  修复并继续

11.  调试多线程应用程序

12.  调试子进程

13.  调试 OpenMP 程序

14.  处理信号

15.  使用 dbx 调试 C++

16.  使用 dbx 调试 Fortran

17.  使用 dbx 调试 Java 应用程序

18.  在机器指令级调试

19.  将 dbx 与 Korn Shell 配合使用

20.  调试共享库

A.  修改程序状态

B.  事件管理

C.  宏

D.  命令参考

索引

编译调试程序

必须用 -g-g0 选项对程序进行编译,以便为使用 dbx 进行调试做好准备。

使用 -g 选项进行编译

-g 选项将指示编译器在编译期间生成调试信息。

例如,要使用 C++ 编译器进行编译,请键入:

% CC -g example_source.cc

对于 C++ 编译器:

要编译将使用 dbx 调试的优化代码,请使用 -O(大写字母 O)和 -g 选项来编译源代码

使用独立的调试文件

dbx 允许您在 objcopy 命令(在 Linux 平台上)和 gobjcopy 命令(在 Solaris 平台上)中使用选项,将调试信息从可执行文件复制到独立的调试文件、从可执行文件中删除该信息,以及在这两个文件之间创建链接。

dbx 按照以下顺序搜索独立的调试文件,并从找到的第一个文件中读取调试信息:

例如,要为可执行文件 a.out 创建独立的调试文件,应执行以下操作。

创建独立的调试文件

  1. 创建包含调试信息的、名为 a.out.debug 的独立调试文件:
    objcopy --only-keep-debug a.out a.out.debug
  2. a.out 中删除调试信息:
    objcopy --strip-debug a.out
  3. 在两个文件之间建立链接:
    objcopy --add-gnu-debuglink=a.out.debug a.out

    在 Solaris 平台上,使用 gobjcopy 命令。在 Linux 平台上,使用 objcopy 命令。

    在 Linux 平台上,可以使用 objcopy -help 命令来确定该平台是否支持 -add-gnu-debuglink 选项。可以使用 cp a.out a.out.debug 命令替换 objcopy 命令的 -only-keep-debug 选项,以便使 a.out.debug 成为完全可执行文件。