mcrash

task_struct

書式

usage: task_struct [-f] [address]

説明

task_structは1つのプロセスに必ず1つ対応しているテーブルです。 それぞれのプロセスに特有な情報を保持しています。

引数として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 サスペンド状態
Uとして表示されるプロセスは要注意です。 もしUの状態がずっと続くようでしたらプロセスのtrace を取ってみましょう。

x86ではtask_structの直後にカーネルスタック があり、二つあわせて2ページ8KBになっています。

カーネルスタック
カーネル内で動作するためのスタック。 システムコールによるものと、割り込みによるものを含む
x86ではカーネルスタックが伸びすぎるとtask_structの後ろを壊します。 なお、task_structのサイズはLinux 2.4.18だと1440バイトくらい。

MMエントリはmm_struct コマンドで表示できます。 詳細表示(-f)で出力されるオープンファイルは fileコマンドで表示できます。 カーネルスタックトレースは、 traceコマンドで表示できます。

オプション

-f
より詳細に表示します。 files_struct も合わせて表示します。

エイリアス

標準で p としてエイリアスしています。

実行例

task_structを引数無しで実行すると、プロセス情報を一覧を表示します。
> 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