Linux コア ダンプで最も古いスレッドを見つけようとしています。したがって、実行中の各スレッドの開始時間を取得する必要があります。スレッドの開始時刻を取得する方法はありますか。
gdb コア ファイルでコマンドを実行しようとしましたが、スレッドの各呼び出しスタックは表示されますが、開始時間は表示されません。
よろしく
ラビ
------------------------
Linux コア ダンプで最も古いスレッドを見つけようとしています。したがって、実行中の各スレッドの開始時間を取得する必要があります。
あなたの結論は、前の発言から導き出されるものではありません。
スレッドの開始時刻を取得する方法はありますか。
いいえ: その時間はこのファイルのどこにも記録されていませんスレッド構造。
ただし、一般に Linux はスレッド ID を昇順に割り当てるため、スレッド ID で並べ替えると希望する順序が得られるはずです。例:
(gdb) info thread
Id Target Id Frame
* 1 Thread 0x7fa91e769740 (LWP 2128629) __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
2 Thread 0x7fa91d766700 (LWP 2128632) 0x0000557aa5787165 in fn ()
3 Thread 0x7fa91af61700 (LWP 2128637) 0x0000557aa5787165 in fn ()
4 Thread 0x7fa91df67700 (LWP 2128631) 0x0000557aa5787165 in fn ()
5 Thread 0x7fa91cf65700 (LWP 2128633) 0x0000557aa5787165 in fn ()
6 Thread 0x7fa91bf63700 (LWP 2128635) 0x0000557aa5787165 in fn ()
7 Thread 0x7fa91c764700 (LWP 2128634) 0x0000557aa5787165 in fn ()
8 Thread 0x7fa91a760700 (LWP 2128638) 0x0000557aa5787165 in fn ()
9 Thread 0x7fa91b762700 (LWP 2128636) 0x0000557aa5787165 in fn ()
10 Thread 0x7fa919f5f700 (LWP 2128639) 0x0000557aa5787165 in fn ()
ここでは、スレッド 1 が最初に作成され、次にスレッド 4、2、5、7 などが作成されたことがわかります (ここでの LWP は Linux スレッド ID です)。