引数としてtask_structのアドレスを指定すると、 そのプロセスの情報を表示します。 引数無しでtask_structを実行すると、 実行中の全てのプロセスの一覧を表示します。 (init_task_unionからtask_structのチェーンを辿ります)
タスクの状態(S)は以下の記号で表しています。
R | TASK_RUNNING | 実行可能状態 |
---|---|---|
I | TASK_INTERRUPTABLE | 休眠状態 |
U | TASK_UNINTERRUPTABLE | 休眠状態 (シグナルで起きない) |
Z | TASK_ZOMBIE | ゾンビ状態 |
T | TASK_STOPPED | サスペンド状態 |
x86ではtask_structの直後にカーネルスタック があり、二つあわせて2ページ8KBになっています。
MMエントリはmm_struct コマンドで表示できます。 詳細表示(-f)で出力されるオープンファイルは fileコマンドで表示できます。 カーネルスタックトレースは、 traceコマンドで表示できます。
> task_struct ! head ADDR S PID SID UID EUID MM NAME FLAGS c027c000 R 0 0 0 0 0 swapper priv cbfe8000 I 1 0 0 0 c13f7080 init priv c1314000 I 2 1 0 0 0 keventd noexec c1310000 I 3 1 0 0 0 ksoftirqd_CPU0 noexec c133e000 I 4 1 0 0 0 kswapd noexec memalloc c133c000 I 5 1 0 0 0 bdflush noexec c133a000 I 6 1 0 0 0 kupdated noexec cbf72000 I 8 1 0 0 0 khubd noexec cb3d0000 I 466 466 0 0 c13f7300 syslogd noexec |
-fオプションを付けると詳細を表示します。
> task_struct -f c50fe000 ADDR S PID SID UID EUID MM NAME FLAGS c50fe000 I 1060 1060 524 524 c8a9eaa0 bash FILE CNT MFD MFDS NEXT FILEPP c56b35a0 1 256 1024 3 cbef4000 0:c4ec2e40 1:c4ec2e40 2:c4ec2e40 exec_domain:c024dd80 pptr:c4ece000 user:cb37f280 thread:c50fe270 sig:c4ebe080 blocked:00010000 00000000 tty_struct:c4401000 eip:c01119c1 esp:c50fff54 esp0:c5100000 |
mcrash, Copyright (C) 2002 ASANO Masahiro |