How Do I Get the Backtrace for All the Threads in Gdb?

Is there an equivalent command in GDB to that of WinDbg's !process 0 7?

I want to extract all the threads in a dump file along with their backtraces in GDB. info threads doesn't output the stack traces. So, is there a command that does?

4

4 Answers

Generally, the backtrace is used to get the stack of the current thread, but if there is a necessity to get the stack trace of all the threads, use the following command.

thread apply all bt
5

Is there a command that does?

thread apply all where
3

When debugging with several threads, it is also useful to switch to a particular thread number and get the backtrace for that thread only.

From the GNU GDB threads documentation

For debugging purposes, GDB associates its own thread number--a small integer assigned in thread-creation order--with each thread in your program.

Usage:

info threads

Then identify the thread that you want to look at.

thread <thread_id>

Finally, use backtrace for just that thread:

bt

If your process is running:

pstack $pid
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Marcus Vance

Marcus Vance

Cybersecurity & Digital Privacy Researcher

Marcus Vance is a cybersecurity auditor and technology writer dedicated to educating the public about online safety, data privacy regulations, enterprise security, and emerging cyber threats.

Share this article
Twitter Facebook Pinterest