3

私はgdb/linuxコアダンプ用のスクリプトツールを開発しています。スクリプトをコアバンプにポイントすると、処理中のすべてのスレッドのすべてのスタックトレースが一覧表示されます。つまり、達成しようとしているのは、windbgの!process0とほぼ同等のgdbです。ダンプからスタックを使用してすべてのプロセスとスレッドをダンプします。

!process 0に相当するgdbはありますか?

そうでない場合

すべてのプロセスを一覧表示し、コアダンプからgdb内のプロセスの下にあるすべてのスレッドを一覧表示するgdbコマンドは何ですか?

これにより、すべてのpidとtidをループして、ファイルに記録できるバックトレースを取得するスクリプトを作成できますか?

また、perl / pythonなど、このためのスクリプト言語に関する提案もあります。より良いものを歓迎します。

ありがとうガネーシュ

4

2 に答える 2

3

これにより、すべてのフレームですべてのローカルを含むすべてのスレッドのバックトレースが得られます。

(gdb) thread apply all bt full

単一のコアファイルが複数のプロセスをカバーするとは思いません。スクリプト オプションについては、GDB のドキュメントを参照してください。

于 2011-03-09T13:13:52.740 に答える
0

の代わりに、 GDB のテキスト出力を解析しようとするのではなく、最近の GDB バージョンに組み込まthread apply all btている Python インタープリターを使用することをお勧めします。

UNIX コア ファイルが 1 つのプロセス (クラッシュまたは強制終了されたプロセス) のみをカバーするという点で、Nikolai は正しいです。

于 2011-03-10T23:17:53.113 に答える