Date: Mon, 7 Oct 1996 18:47:50 +1000 From: Bruce Evans <bde@zeta.org.au> To: freebsd-hackers@FreeBSD.org, j@uriah.heep.sax.de Cc: hasty@rah.star-gate.com Subject: Re: Another question: kernel crash dumps 8) Message-ID: <199610070847.SAA23202@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>As Amancio Hasty wrote: > >> #17 0xf01d36f7 in trap (frame={tf_es = 196624, tf_ds = 262160, >> tf_edi = -1073741824, tf_esi = 24499, tf_ebp = -266207472, >> tf_isp = -266207556, tf_ebx = 3, tf_edx = 6553500, tf_ecx = 4, >> tf_eax = -219578368, tf_trapno = 12, tf_err = 0, tf_eip = -266385786, >> tf_cs = 8, tf_eflags = 66070, tf_esp = 3, tf_ss = 21}) >> at ../../i386/i386/trap.c:311 >> #18 0xf01cb6c1 in calltrap () > >> So it seems that the current running routine's context is not being saved. Trap, interrupt and syscall handlers handlers don't have a normal frame. This results in the context of the routine that was running when the trap occurred being invisible in gdb. The problem is most critical for traps in kernel mode. For traps in user mode and syscalls, you usually don't care what was running when the trap occurred. >Get the latest gdb with Garett's modifications, or read the section >about kernel debugging in the handbook. I've described the procedure >how to do this at least a dozen times -- do you read these lists? > >(Hint: ``frame frame->tf_ebp frame->tf_eip'') Or recover my work-around from rev.1.10 of i386/exception.s. It is only for traps. Syscalls are interrupts are too hard/expensive to fix in the same way. The debugger needs to understand the frame. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610070847.SAA23202>