问题描述
是否可以更改 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 (将#修改为@)