Debugging 如何更改编译器在二进制文件的DWARF信息中包含的调试路径

Debugging 如何更改编译器在二进制文件的DWARF信息中包含的调试路径,debugging,gcc,path,gdb,dwarf,Debugging,Gcc,Path,Gdb,Dwarf,GCC在其DWARF调试信息(使用-g编译时)中包含用于生成对象文件的源文件的路径 然而,GDB的意思是,如果我将源代码移动到另一个子目录,我必须使用鲜为人知的set substitute path。或者,也许我想隐藏一些源文件的路径信息,或者干脆缩短它 GCC是否提供选项来更改二进制文件调试信息中包含的源路径?使用-fdebug prefix map=old\u path=new\u path选项更改GCC 据我所知,LLVM/Clang没有提供等效的选项。这花了我几个小时才找到,而且不会出现

GCC在其DWARF调试信息(使用-g编译时)中包含用于生成对象文件的源文件的路径

然而,GDB的意思是,如果我将源代码移动到另一个子目录,我必须使用鲜为人知的
set substitute path
。或者,也许我想隐藏一些源文件的路径信息,或者干脆缩短它


GCC是否提供选项来更改二进制文件调试信息中包含的源路径?

使用
-fdebug prefix map=old\u path=new\u path
选项更改GCC


据我所知,LLVM/Clang没有提供等效的选项。

这花了我几个小时才找到,而且不会出现[矮人、调试、路径、模式、替换、替换]的任何搜索组合,因此,我把它发布在这里,希望能改进它的谷歌果汁。
rpm
包括一个
debugedit
命令来实现这一点。我觉得它有点黑(IIRC)。在任何情况下,Fedora在构建RPM时都会使用它重写debuginfo路径。