procstack コマンド
目的
プロセス内のすべてのスレッドについて、 16 進アドレスとシンボル名を印刷します。
構文
説明
/proc ファイルシステムは、プロセスを制御するメカニズムを提供します。また、プロセスとスレッドの現行状態についての情報もアクセスできますが、これはバイナリー形式です。proctools コマンドは、いくつかの使用できる情報に基づいて ASCII レポートを提供します。
ほとんどのコマンドは、プロセス ID のリストまたは /proc/ ProcessID 文字列を入力とします。 したがって、シェル拡張 /proc/* を使用することにより、システム内のすべてのプロセスを指定できます。
proctools コマンドは、指定されたプロセスの /proc から情報を収集し、ユーザーに表示します。 proctools コマンドは procrun および procstop と同様に、/proc インターフェースを使用してプロセスを開始し、停止します。
コマンドが /proc から収集した情報は、 プロセスの現行状態のスナップショットであり、 したがって停止したプロセス以外は、刻々と変化します。
procstack コマンドは、プロセス内のすべてのスレッドについて 16 進アドレスとシンボル名を印刷します。
フラグ
項目 | 説明 |
---|---|
-F | 別のプロセスが制御を持っていたとしても、強制的に procstack コマンドがターゲット・プロセスの制御を得るようにします。 |
-g | シンボル名が人間が理解できる名前に変換されないようにします。 |
ProcessID | プロセス ID を指定します。 |
例
- プロセス 11928 の現行スタックを表示するには、次のように入力します。
このコマンドの出力は以下のような情報です。procstack 11928
11928 : -sh d01d15c4 waitpid (?, ?, ?) + e0 10007a1c job_wait (?) + 144 10020298 xec_switch (?, ?, ?, ?, ?) + 9c0 10021db4 sh_exec (?, ?, ?) + 304 10001370 exfile () + 628 10000300 main (?, ?) + a1c 10000100 __start () + 8c
- アプリケーション appl のマルチスレッド・プロセス 28243
のすべてのスレッドの現行スタックを表示するには、次のように入力します。
このコマンドの出力は次のようなものです。procstack 28243
28243 : appl ---------- tid# 54321 ----------- d0059eb4 _p_nsleep (?, ?) + 10 d01f1fc8 nsleep (?, ?) + b4 d026a6c0 sleep (?) + 34 100003a8 main () + 98 10000128 __start () + 8c ---------- tid# 43523 ---------- d0059eb4 _p_nsleep (?, ?) + 10 d01f1fc8 nsleep (?, ?) + b4 d026a6c0 sleep (?) + 34 10000480 PrintHello (d) + 30 d004b314 _pthread_body (?) + ec ---------- tid# 36352 ---------- d0059eb4 _p_nsleep (?, ?) + 10 d01f1fc8 nsleep (?, ?) + b4 d026a6c0 sleep (?) + 34 10000480 PrintHello (c) + 30 d004b314 _pthread_body (?) + ec
ファイル
項目 | 説明 |
---|---|
/proc | /proc ファイルシステムが入っています。 |