traceコマンドは カーネルスタックとカーネル内の関数オブジェクトを解析してトレースを得ます。 多くの場合正しくトレースを取ることができますが、まれに失敗します。
traceとdisに関しては、 現状ではx86用のコーディングしかしていません。
> 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 |