不同的 .dwo 文件可以合并为一个文件吗?

Sha*_*tef 5 c++ compilation dwarf

背景:

我需要我们项目中代码的调试信息。可以采用以下两种方法:

  1. -g使用 GNU 二进制实用程序进行编译strip,然后objcopy将调试信息剥离到单独的文件中。
  2. 编译使用-gsplit-dwarf

问题

第二种方法.dwo为应用程序中的每个翻译单元创建一个。尽管这会缩短链接器时间。但由于翻译文件数量巨大,这会给我们带来管理上的麻烦。

有没有办法将所有.dwo文件合并到每个二进制文件中?

系统信息

编译器:GCC 工具链。

操作系统:CentOS/RH 7/8

Bot*_*tje 3

您正在寻找的工具称为dwp。它将您的 .dwo 文件收集到 .dwp 文件(“DWARF 包”)中。如果需要,.dwp 文件本身可以合并为更大的 .dwp 文件。

它应该附带非古老的 ​​binutils 软件包。

  • 我想添加 `dwp` 生成 Dwarf 包文件,它有两个版本。GDB 7.x 不支持版本 2。我不得不使用 gdb 8.x (3认同)