diff options
author | S3RK <1466284+S3RK@users.noreply.github.com> | 2021-07-06 09:15:07 +0200 |
---|---|---|
committer | S3RK <1466284+S3RK@users.noreply.github.com> | 2021-08-21 20:42:42 +0200 |
commit | 0bc666b053b8f4883c3f5de43959e2bbd91b95c5 (patch) | |
tree | dcddd8edf45b38e6358261344e37fb25516ea054 | |
parent | a8b515c317f0b5560f62c72a8f4eb6560d8f1c75 (diff) | |
download | bitcoin-0bc666b053b8f4883c3f5de43959e2bbd91b95c5.tar.xz |
doc: add info for debugging with relative paths
-rw-r--r-- | doc/developer-notes.md | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/developer-notes.md b/doc/developer-notes.md index c3a63b3523..be83257740 100644 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -12,6 +12,7 @@ Developer Notes - [Generating Documentation](#generating-documentation) - [Development tips and tricks](#development-tips-and-tricks) - [Compiling for debugging](#compiling-for-debugging) + - [Show sources in debugging](#show-sources-in-debugging) - [Compiling for gprof profiling](#compiling-for-gprof-profiling) - [`debug.log`](#debuglog) - [Signet, testnet, and regtest modes](#signet-testnet-and-regtest-modes) @@ -249,6 +250,35 @@ Development tips and tricks Run configure with `--enable-debug` to add additional compiler flags that produce better debugging builds. +### Show sources in debugging + +If you have ccache enabled, absolute paths are stripped from debug information +with the -fdebug-prefix-map and -fmacro-prefix-map options (if supported by the +compiler). This might break source file detection in case you move binaries +after compilation, debug from the directory other than the project root or use +an IDE that only supports absolute paths for debugging. + +There are a few possible fixes: + +1. Configure source file mapping. + +For `gdb` create or append to `.gdbinit` file: +``` +set substitute-path ./src /path/to/project/root/src +``` + +For `lldb` create or append to `.lldbinit` file: +``` +settings set target.source-map ./src /path/to/project/root/src +``` + +2. Add a symlink to the `./src` directory: +``` +ln -s /path/to/project/root/src src +``` + +3. Use `debugedit` to modify debug information in the binary. + ### Compiling for gprof profiling Run configure with the `--enable-gprof` option, then make. |