在利用 dbx 调试程序前,必须使用 -g 或 -g0 选项进行编译。
-g 选项指示编译器在编译期间生成调试信息。
例如,要用 C++ 进行编译,键入:
% CC -g example_source.cc |
在 C++ 中,-g 选项打开调试并关闭函数的内联。-g0(零)选项打开调试但并不影响函数的内联。不能用 -g0 选项调试内联函数。-g0 选项可大大减少链接时间和 dbx 启动时间(取决于程序所使用的内联函数)。
要编译优化代码以用于 dbx,请使用 -O(大写字母 O)和 -g 选项编译源代码。
dbx 允许您在 objcopy 命令(在 Linux 平台上)和 gobjcopy 命令(在 Solaris 平台上)中使用选项,将调试信息从可执行文件复制到独立的调试文件、从可执行文件中删除该信息,以及在这两个文件之间创建链接。
dbx 按照以下顺序搜索独立的调试文件,并从找到的第一个文件中读取调试信息:
包含可执行文件的目录。
包含可执行文件的目录中名为 debug 的子目录。
全局调试文件目录的子目录;如果 dbx 环境变量 debug_file_directory 设置为该目录的路径名,您可以查看或更改该目录。环境变量的缺省值为 /usr/lib/debug。
例如,要为可执行文件 a.out 创建独立的调试文件,应执行以下操作。