Sun Studio 12 Update 1:使用 dbx 调试程序

编译调试程序

必须使用 -g 或 -g0 选项进行编译,来准备使用 dbx 调试程序。

使用 -g 选项进行编译

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

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


% CC -g example_source.cc

在 C++ 中,-g 选项打开调试并关闭函数的内联。-g0(零)选项打开调试但并不影响函数的内联。不能用 -g0 选项调试内联函数。-g0 选项可大大减少链接时间和 dbx 启动时间(取决于程序所使用的内联函数)。

要编译优化代码以用于 dbx,请使用 -O(大写字母 O)和 -g 选项编译源代码

使用独立的调试文件

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

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

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

Procedure创建独立的调试文件

  1. 创建包含调试信息的、名为 a.out.debug 的独立调试文件。

  2. a.out 中删除调试信息。

  3. 在两个文件之间建立链接。在 Solaris 平台上,使用 gobjcopy 命令。在 Linux 平台上,使用 objcopy 命令。

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