Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using -ffile-prefix-map breaks debugging

At $DAYJOB, I am trying to implement reproducible builds to make debugging released software where we no longer have the full debug versions on our build servers easier, using the tips from reproducible-builds.org.

Using the -ffile-prefix-map=/path/to/build=src option in GCC to avoid leaking internal file paths does help making some error messages cleaner, but does produce problems when using GDB. I am in /path/to/build/some/binary/ and hitting a breakpoint in /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)

As a workaround, I can symlink src to the root of the build tree, but is there a better way to make sure gdb understands the mapping?

like image 522
nafmo Avatar asked Aug 01 '26 01:08

nafmo


1 Answers

GDB has a few configuration commands to direct the way it searches for source code. In your case, where you have a tree of source code and you need to change a path prefix, set substitute-path DWARF-compilation-dir actual-dir should be all you need to do.

set substitute-path src /path/to/build
like image 83
Mark Plotnick Avatar answered Aug 04 '26 15:08

Mark Plotnick



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!