Date: Wed, 12 Mar 1997 23:44:58 +0100 From: Andreas Klemm <andreas@klemm.gtn.com> To: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de> Cc: current@freebsd.org Subject: Re: 2.2-GAMMA (latest) page fault while in kernel mode Message-ID: <19970312234458.29193@klemm.gtn.com> References: <19970312080118.34495@klemm.gtn.com> <19970312095650.SW14549@uriah.heep.sax.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 12, 1997 at 09:56:50AM +0100, J Wunsch wrote:
> As Andreas Klemm wrote:
>
> Maybe the latest gdb doesn't honor being called by the name kgdb as a
> special case? Gary?
>
> Try gdb -k.
You're right. Here my gdb output:
Script started on Wed Mar 12 23:39:11 1997
root# gdb -k kernel /var/crash/vmcore.1
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i386-unknown-freebsd),
Copyright 1996 Free Software Foundation, Inc...
IdlePTD 1e1000
current pcb at 1c5990
panic: page fault
#0 boot (howto=256) at ../../kern/kern_shutdown.c:243
243 dumppcb.pcb_cr3 = rcr3();
(kgdb) where
#0 boot (howto=256) at ../../kern/kern_shutdown.c:243
#1 0xf010de42 in panic (fmt=0xf018339f "page fault")
at ../../kern/kern_shutdown.c:367
#2 0xf0183f06 in trap_fatal (frame=0xefbffe1c) at ../../i386/i386/trap.c:742
#3 0xf01839f4 in trap_pfault (frame=0xefbffe1c, usermode=0)
at ../../i386/i386/trap.c:653
#4 0xf01836cf in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = 66096,
tf_esi = -231473664, tf_ebp = -272630176, tf_isp = -272630204,
tf_ebx = -198097180, tf_edx = -198097180, tf_ecx = 1, tf_eax = 0,
tf_trapno = 12, tf_err = 0, tf_eip = 0, tf_cs = 8, tf_eflags = 66054,
tf_esp = -267167890, tf_ss = -198097180}) at ../../i386/i386/trap.c:311
(kgdb) list
238 }
239 } else {
240 if (howto & RB_DUMP) {
241 if (!cold) {
242 savectx(&dumppcb);
243 dumppcb.pcb_cr3 = rcr3();
244 dumpsys();
245 }
246
247 if (PANIC_REBOOT_WAIT_TIME != 0) {
(kgdb) up 1
#1 0xf010de42 in panic (fmt=0xf018339f "page fault")
at ../../kern/kern_shutdown.c:367
367 boot(bootopt);
(kgdb) list
362
363 #if defined(DDB)
364 if (debugger_on_panic)
365 Debugger ("panic");
366 #endif
367 boot(bootopt);
368 }
369
370 /*
371 * Two routines to handle adding/deleting items on the
(kgdb) print bootopt
$1 = 256
(kgdb) up 1
#2 0xf0183f06 in trap_fatal (frame=0xefbffe1c) at ../../i386/i386/trap.c:742
742 panic(trap_msg[type]);
(kgdb) list
737 #ifdef DDB
738 if (kdb_trap (type, 0, frame))
739 return;
740 #endif
741 if (type <= MAX_TRAP_MSG)
742 panic(trap_msg[type]);
743 else
744 panic("unknown/reserved trap");
745 }
746
(kgdb) print type
$2 = 12
(kgdb) print trap_msg[type]
$3 = 0xf018339f "page fault"
(kgdb) up 1
#3 0xf01839f4 in trap_pfault (frame=0xefbffe1c, usermode=0)
at ../../i386/i386/trap.c:653
653 trap_fatal(frame);
(kgdb) list
648 if (!usermode) {
649 if (intr_nesting_level == 0 && curpcb && curpcb->pcb_onfault) {
650 frame->tf_eip = (int)curpcb->pcb_onfault;
651 return (0);
652 }
653 trap_fatal(frame);
654 return (-1);
655 }
656
657 /* kludge to pass faulting virtual address to sendsig */
(kgdb) print frame
$4 = (struct trapframe *) 0xefbffe1c
(kgdb) up 1
#4 0xf01836cf in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = 66096,
tf_esi = -231473664, tf_ebp = -272630176, tf_isp = -272630204,
tf_ebx = -198097180, tf_edx = -198097180, tf_ecx = 1, tf_eax = 0,
tf_trapno = 12, tf_err = 0, tf_eip = 0, tf_cs = 8, tf_eflags = 66054,
tf_esp = -267167890, tf_ss = -198097180}) at ../../i386/i386/trap.c:311
311 (void) trap_pfault(&frame, FALSE);
(kgdb) list
306 } else {
307 /* kernel trap */
308
309 switch (type) {
310 case T_PAGEFLT: /* page fault */
311 (void) trap_pfault(&frame, FALSE);
312 return;
313
314 case T_DNA:
315 #if NNPX > 0
(kgdb) print frame
$5 = {tf_es = 16, tf_ds = 16, tf_edi = 66096, tf_esi = -231473664,
tf_ebp = -272630176, tf_isp = -272630204, tf_ebx = -198097180,
tf_edx = -198097180, tf_ecx = 1, tf_eax = 0, tf_trapno = 12, tf_err = 0,
tf_eip = 0, tf_cs = 8, tf_eflags = 66054, tf_esp = -267167890,
tf_ss = -198097180}
(kgdb) where
#0 boot (howto=256) at ../../kern/kern_shutdown.c:243
#1 0xf010de42 in panic (fmt=0xf018339f "page fault")
at ../../kern/kern_shutdown.c:367
#2 0xf0183f06 in trap_fatal (frame=0xefbffe1c) at ../../i386/i386/trap.c:742
#3 0xf01839f4 in trap_pfault (frame=0xefbffe1c, usermode=0)
at ../../i386/i386/trap.c:653
#4 0xf01836cf in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = 66096,
tf_esi = -231473664, tf_ebp = -272630176, tf_isp = -272630204,
tf_ebx = -198097180, tf_edx = -198097180, tf_ecx = 1, tf_eax = 0,
tf_trapno = 12, tf_err = 0, tf_eip = 0, tf_cs = 8, tf_eflags = 66054,
tf_esp = -267167890, tf_ss = -198097180}) at ../../i386/i386/trap.c:311
(kgdb) q
root{1002} /bisdn/compile/BISDN exit
Script done on Wed Mar 12 23:42:01 1997
--
andreas@klemm.gtn.com /\/\___ Wiechers & Partner Datentechnik GmbH
Andreas Klemm ___/\/\/ Support Unix -- andreas.klemm@wup.de
pgp p-key http://www-swiss.ai.mit.edu/~bal/pks-toplev.html >>> powered by <<<
ftp://sunsite.unc.edu/pub/Linux/system/Printing/aps-491.tgz >>> FreeBSD <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970312234458.29193>
