-
Notifications
You must be signed in to change notification settings - Fork 37.7k
gitian: Ship debug tarballs/zips with debug symbols #8167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This does not break any existing prefix behavior, only makes new behavior work. For example: CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure --prefix=/
The -debug tarballs/zips contain detached debugging symbols. To use them, place in the same dir as the target binary, and invoke gdb as usual. Also, because the debug symbols add a substantial space requirement, the build dirs are now deleted when they're no longer needed.
Very cool! |
Nice utACK 7e7eb27 |
Concept ACK |
Tested ACK for Linux (gitian-built executables):
$ addr2line -Caife bitcoind.dbg 0xb258c
0x00000000000b258c
ReadBlockFromDisk(CBlock&, CBlockIndex const*, Consensus::Params const&)
/home/ubuntu/build/bitcoin/distsrc-x86_64-unknown-linux-gnu/src/main.cpp:1562 Haven't tested windows yet. |
Hm, only tangentially related to this pull, but this is strange, looks like windows .zip still has bench_bitcoin.exe:
Seems I overlooked that one in #7776 (gitian-win.yml doesn't have the |
Tested ACK Windows:
(haven't tried mingw-wine gdb, but I believe you that it works) |
I tried it insomuch as gdb finds the symbols, but I had other local issues preventing gdb from working with wine. I'm not sure that I've ever actually used gdb for win debugging. I'm assuming most windows crash investigations will happen via add2rline, but if you've used gdb that way in the past and would like to verify that it works, I'll see if I can work out my issue and test. |
Yes, I've done so once, it was not a very pleasant experience. |
Mention ARM executables in the release process documentation (these were introduced in bitcoin#8188). As well as that Linux tarballs have changed name to contain an architecture tuple, instead of `linux32`/`linux64`. Also mention that `-debug` files should not be uploaded (these were introduced in bitcoin#8167).
Upstream gitian updates This PR pulls in all gitian-related PRs that have been merged upstream since 0.11.2. The only ones I left out were documentation-only PRs, because we removed `doc/gitian-building.md` at some point. Here are the commits applied here, in the order shown in `git log` (ie. last to first): - bitcoin/bitcoin#7283 - fa42a67 - fa58c76 - bitcoin/bitcoin#8175 - 74c1347 - bitcoin/bitcoin#8167 - 7e7eb27 - ad38204 - b676f38 - bitcoin/bitcoin#7776 - f063863 - bitcoin/bitcoin#7424 - a81c87f ~ we already partly applied - a8ce872 - f3d3eaf ~ we already partly applied - 475813b - ~~cd27bf5~~ X we already applied - bitcoin/bitcoin#7060 - 3b468a0 ~ we removed doc/gitian-building.md - ~~99fda26~~ X we removed doc/gitian-building.md - bitcoin/bitcoin#7251 - fa09562 - bitcoin/bitcoin#6900 - ~~2cecb24~~ X we removed doc/gitian-building.md - 957c0fd - 2e31d74 - ~~0b416c6~~ X we removed QT - 9f251b7 - bitcoin/bitcoin#6854 - 579b863 ~ we already partly applied Part of #540
Mention ARM executables in the release process documentation (these were introduced in bitcoin#8188). As well as that Linux tarballs have changed name to contain an architecture tuple, instead of `linux32`/`linux64`. Also mention that `-debug` files should not be uploaded (these were introduced in bitcoin#8167).
Addresses #7770, though only Linux and Windows for now. OSX will need a little more attention, since dsymutil isn't yet built as part of our toolchain.
To test, simply untar/unzip the new -debug files in the same path as the binaries, and gdb should find them automatically.
To make my life easier while I was in there, I fixed up depends to play nice with CONFIG_SITE, which can be used now instead of abusing --prefix, though the --prefix hack still works fine.
Now, configure can also be run like: