mcrash

trace

書式

usage: trace address

説明

カーネル内の関数バックトレースを表示します。 引数にはtask_structのアドレスを指定します (task_structコマンドで取得できます)。

traceコマンドは カーネルスタックとカーネル内の関数オブジェクトを解析してトレースを得ます。 多くの場合正しくトレースを取ることができますが、まれに失敗します。

traceとdisに関しては、 現状ではx86用のコーディングしかしていません。

関数

すべてのプロセスのトレースをとる関数 traceall を定義しています。

実行例

> trace c48bc000
PID = 8570
eip = c01105ce  schedule+34e
esp = c48bdde8
[c48bde44] c01101f3  schedule_timeout+17 ()
[c48bde68] c01f0cf3  wait_for_connect+133 (c424c840,7fffffff)
[c48bdeac] c01f0de6  tcp_accept+82 (c424c840,2,c48bdee8)
[c48bdec8] c0208068  inet_accept+30 (c41a87a0,c074fb40,2)
[c48bdeec] c01d7616  sys_accept+66 (10,bffff87c,bffff878)
[c48bdf94] c01d808e  sys_socketcall+a6 ()
[c48bdfc0] c0106b9b  system_call+33 ()

> traceall
    ADDR S   PID   SID   UID  EUID NAME             FLAGS
c0282000 R     0     0     0     0 swapper          priv
PID = 0
eip = c01105ce  schedule+34e
esp = c0283f80
[c0283fdc] c0105230  cpu_idle+48 ()
[c0283fec] c0105027  rest_init+27 ()
[c0283ff0] c0284805  start_kernel+ed ()
[c0283ff4]        1  ?

    ADDR S   PID   SID   UID  EUID NAME             FLAGS
c7eac000 I     1     0     0     0 init             priv
PID = 1
eip = c01105ce  schedule+34e
esp = c7eadea4
[c7eadf00] c011024f  schedule_timeout+73 ()
[c7eadf28] c0139cc3  do_select+97 (b,c7eadfa8,c7eadfa4)
[c7eadf60] c013a292  sys_select+436 ()
[c7eadfc0] c0106b9b  system_call+33 ()
    (略)


mcrash, Copyright (C) 2002 ASANO Masahiro