Skip site navigation (1)Skip section navigation (2)
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>