gdbを使用してコアダンプから各スレッドの「comm」を取得できますか?

gdbを使用してコアダンプから各スレッドの「comm」を取得できますか?

マルチスレッドを使用するCプログラムを作成しました。便宜上、各スレッドのスレッドをcomm別々の値に設定した。この値はスレッドの状態によって変わることがあります(クラシックに似ていますsendmail)。

プロセスの終了中にコアをダンプすると、プロセスが失敗したときに2つのスレッドがアクティブになったことがわかります(そのうちの1つはfailed pthread_join)。残念ながら、どのスレッドがどのスレッドであるかを把握することは容易ではなく、gccに最適化されたコードにはしばしば「折りたたまれたスタックフレーム」があるため、gccの逆追跡では実際に呼び出し階層が表示されません。

また、この問題は再現するのが難しいので、コアダンプからできるだけ多くの情報を取得したいと思います。

具体的には、commgccを使用してスレッドのフィールドを表示できますか?

ベストアンサー1

おすすめ記事