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
ucrash> 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.