重新定位 .debug_line 部分中的文件

问题描述

是否可以更改 ELF 文件.debug_line 部分中的文件路径?

我正在尝试设置 Debug Fission,到目前为止我有 my_library.so(处于发布模式,没有调试信息)和 my_library.so.dbg(带有调试符号)。我已将两者联系起来

objcopy --add-gnu-debuglink=my_library.so.dbg

我可以看到 gdb 通过手动检查和检查文件访问正确地从 my_library.so.dbg获取符号和行信息

strace -o log gdb program_that_loads_my_library.so
cat log | grep my_library.so.dbg  # I see a 'stat' that returns a file

但是,my_library.so.dbg 的构建在与我用于调试的位置不同的位置对文件路径进行编码。有没有办法重新定位 my_library.so.dbg 中的文件路径,以便我可以将其指向任意目录?更具体地说,所有文件在构建过程中都在某个目录中,比如 /build_dir/...,但是在调试时我想用 /home/myuser/local_checkout/... 替换它。这可以通过 objcopy 实现吗?我在 manual

中没有看到任何相关信息

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)