-
Notifications
You must be signed in to change notification settings - Fork 46
Stack trace
Malcolm James MacLeod edited this page Jul 10, 2021
·
2 revisions
If the program is crashing in a repeatable way, i.e. you can get it to happen again and it wasn't just a once off event. Then the absolute best information you can give developers in such a case is a stack trace.
How to get a stack trace:
- Install gdb
- Fetch the debug info file from github for your architecture (e.g.
Gulden-2.4.3-x86_64-linux-gnu-debug.tar.gz
for 64 bit linux debug info) extract and place in a folder on your harddrive, note the debug file must match the version of the software you are running; make sure to download a version that matches - Extract the debug info and place it alongside the executable
- Open the application via gdb, e.g.
gdb ./Gulden
- Run the application
run -t --yourargs
substitute--yourargs
for any flags you usually pass to Gulden (e.g.-datadir
or-debug
or remove it if you don't usually pass any - Run until the program crashes, which will now manifest as gdb pausing the program
- Run the command
thread apply all bt
- Allow all output to print (push
c
if prompted to have it display it all) - Copy all of the output and provide it to a developer
You can do a dry run to test the above process works using the rpc command forcesigseg
which will force the program to deliberately crash.
This will provide the developer with highly useful and actionable information with which they can proceed to look into the issue. It is recommended to also make a copy of your debug.log as the developer may want this as well. Once you have both of these things you can proceed to close the program and restart it.