GDBのすべてのスレッドのバックトレースを取得するにはどうすればよいですか?


151

WinDbgの「!process 0 7」と同等のコマンドがGDBにありますか?

GDBのバックトレースとともに、すべてのスレッドをダンプファイルに抽出したいと思います。「情報スレッド」はスタックトレースを出力しません。それで、それを行うコマンドはありますか?


13
LLDBに対応するコマンドがあるbt all -場合には、誰かが(GDB == LLDBを考えている)グーグル経由でこれを見つけました。
kennytm 2016年

pythonでは、次のように機能します。 "(gdb)python for gdb.selected_inferior()。threads():thread.switch(); print(thread.num); gdb.execute( 'where')"
Talespin_Kit

回答:


243

通常、バックトレースは現在のスレッドのスタックを取得するために使用されますが、すべてのスレッドのスタックトレースを取得する必要がある場合は、次のコマンドを使用します。

thread apply all bt

12
出力をファイルに保存するには:gdb <binary> <coredump> -ex "thread apply all bt" -ex "quit" > output.log
Doomsday

1
これをt a a bt
qbolec

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.