dbx 允许您在 objcopy 命令(在 Linux 平台上)和 gobjcopy 命令(在 Solaris 平台上)中使用选项,将调试信息从可执行文件复制到独立的调试文件、从可执行文件中删除该信息,以及在这两个文件之间创建链接。
dbx 按照以下顺序搜索独立的调试文件,并从找到的第一个文件中读取调试信息:
包含可执行文件的目录。
包含可执行文件的目录中名为 debug 的子目录。
全局调试文件目录的子目录;如果 dbx 环境变量 debug_file_directory 设置为该目录的路径名,您可以查看或更改该目录。环境变量的缺省值为 /usr/lib/debug。
例如,要为可执行文件 a.out 创建独立的调试文件,应执行以下操作。
创建包含调试信息的、名为 a.out.debug 的独立调试文件:
objcopy --only-keep-debug a.out a.out.debug |
从 a.out 中删除调试信息:
objcopy --strip-debug a.out |
在两个文件之间建立链接:
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 成为完全可执行文件。