1

在 $DAYJOB,我正在尝试使用 reproducible-builds.org 中的提示实现可重现的构建,以使调试已发布的软件变得更容易,因为我们的构建服务器上不再有完整的调试版本。

在 GCC 中使用-ffile-prefix-map=/path/to/build=src选项来避免泄漏内部文件路径确实有助于使一些错误消息更清晰,但在使用 GDB 时会产生问题。我在 /path/to/build/some/binary/ 并在 /path/to/build/lib/cclib/ 中遇到断点:

Breakpoint 1, [...]
at src/lib/cclib/eventloop.cc:154
154    src/lib/cclib/eventloop.cc: No such file or directory.
(gdb)

作为一种解决方法,我可以符号链接src到构建树的根目录,但是有没有更好的方法来确保 gdb 理解映射?

4

1 回答 1

3

GDB 有一些配置命令来指导它搜索源代码的方式。在您的情况下,您有一个源代码树并且您需要更改路径前缀,设置替换路径DWARF-compilation-dir actual-dir应该是您需要做的所有事情。

set substitute-path src /path/to/build
于 2021-04-21T13:50:25.343 回答