11/17/2007
Data Test Program (dt)
47
Linux Crash Utility
nRedHat Linux ships a crash utility which can map a process and provide a kernel stack trace (usually more useful than gdb):
n
ulinux# crash
u 
ucrash 4.0-2.30
u        ...
ucrash> ps | fgrep dt
  21490  20426   0  c21021b0  UN   0.1    2596    812  dt
crash> set pid 21490
set: invalid task or pid value: pid
    PID: 21490
COMMAND: "dt"
   TASK: c21021b0  [THREAD_INFO: d5229000]
    CPU: 1
  STATE: TASK_UNINTERRUPTIBLE
crash> bt
PID: 21490  TASK: c21021b0  CPU: 1   COMMAND: "dt"
 #0 [d5229e50] schedule at c02d25c9
 #1 [d5229eb4] log_wait_commit at f88da65c
 #2 [d5229f0c] journal_stop at f88d66c8
 #3 [d5229f2c] journal_force_commit at f88d6712
 #4 [d5229f30] ext3_force_commit at f89b0843
 #5 [d5229f34] write_inode at c0177263
 #6 [d5229f40] __sync_single_inode at c01772d8
 #7 [d5229f60] sync_inode at c0177a69
 #8 [d5229f6c] ext3_sync_file at f89a6e91
 #9 [d5229fa8] sys_fsync at c015c468
#10 [d5229fc0] system_call at c02d46fc
    EAX: 00000076  EBX: 00000003  ECX: 00000000  EDX: f9c00000
    DS:  007b      ESI: ffffffff  ES:  007b      EDI: 06400000
    SS:  007b      ESP: bff257f8  EBP: bff25828
    CS:  0073      EIP: 00ab17a2  ERR: 00000076  EFLAGS: 00000246
ucrash>
u
nNote: kernel debug symbols must be loaded or crash will not start.