マルチスレッドを使用するCプログラムを作成しました。便宜上、各スレッドのスレッドをcomm
別々の値に設定した。この値はスレッドの状態によって変わることがあります(クラシックに似ていますsendmail
)。
プロセスの終了中にコアをダンプすると、プロセスが失敗したときに2つのスレッドがアクティブになったことがわかります(そのうちの1つはfailed pthread_join
)。残念ながら、どのスレッドがどのスレッドであるかを把握することは容易ではなく、gccに最適化されたコードにはしばしば「折りたたまれたスタックフレーム」があるため、gccの逆追跡では実際に呼び出し階層が表示されません。
また、この問題は再現するのが難しいので、コアダンプからできるだけ多くの情報を取得したいと思います。
具体的には、comm
gccを使用してスレッドのフィールドを表示できますか?