如何在eclipse中用ccache编译源代码时设置c++断点

How to set C++ breakpoint in eclipse when source is compiled with ccache?

本文关键字:源代码 设置 c++ 断点 编译 ccache eclipse 中用      更新时间:2023-10-16

最近,我们的开发团队开始使用缓存来实现更快的编译(编译是从sandbox/usr/x完成的)。

现在,当我从沙箱(/usr/y)进行编译,并尝试在Eclipse (GDB (DSF)进程启动器)中的代码中设置断点时,它无法找到该文件。进一步的调查显示,Eclipse gdb使用文件的完整路径来设置断点(例如b/usr/y/untouchedfile .cpp:1234),但实际路径(在gdb调试器中)实际上是/usr/x/untouchedfile .cpp。

唯一有效的方法是在控制台上输入一个断点,并在遇到断点时进行源文件映射。

我想通过单击代码行来设置断点(以前在缓存之前工作)。

我想知道是否有一种方法可以绕过这个。

谢谢!

这个问题可以通过重新映射debug-info来解决。

  • 编译时,添加编译标志:-fdiagnostics-absolute-paths -fdebug-prefix-map=/usr/y=/usr/x
  • 在调试过程中,将set substitute-path "/usr/x" "/usr/y"添加到gdbinit