Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
pstack コマンドは、PID の下で実行されているすべてのスレッドのスタック トレースをどのように出力するのでしょうか?
プロセスはgdb環境内で実行されるため、gdbの方法とは多少異なる必要がありますが、プロセスの実行後にpstackが実行されます。
これは gdb と同じ一般的な考え方です。pstack は ptrace を使用します。これにより、外部プロセスが既知の pid にアタッチし、情報を出力できます (スタックは現在のレジスタを介して認識されます)。
それがどのように行われるかを正確に知りたい場合は、 に関する情報を探してくださいptrace。
ptrace
また、プロセスは実際には「gdb 内」では実行されません。を実行することで、問題なく gdb を実行中のプロセスにアタッチできますgdb executable pid。
gdb executable pid