From owner-freebsd-current Wed Mar 12 23:15:46 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id XAA10765 for current-outgoing; Wed, 12 Mar 1997 23:15:46 -0800 (PST) Received: from news1.gtn.com (news1.gtn.com [192.109.159.3]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id XAA10753 for ; Wed, 12 Mar 1997 23:15:42 -0800 (PST) Received: (from uucp@localhost) by news1.gtn.com (8.7.2/8.7.2) with UUCP id IAA24966; Thu, 13 Mar 1997 08:01:43 +0100 (MET) Received: (from andreas@localhost) by klemm.gtn.com (8.8.5/8.8.2) id XAA03040; Wed, 12 Mar 1997 23:44:58 +0100 (MET) Message-ID: <19970312234458.29193@klemm.gtn.com> Date: Wed, 12 Mar 1997 23:44:58 +0100 From: Andreas Klemm To: Joerg Wunsch Cc: current@freebsd.org Subject: Re: 2.2-GAMMA (latest) page fault while in kernel mode References: <19970312080118.34495@klemm.gtn.com> <19970312095650.SW14549@uriah.heep.sax.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.65_p2,4-7,10-11,15,18,21-22 X-Disclaimer: A free society is one where it is safe to be unpopular X-Operating-System: FreeBSD 2.2-GAMMA Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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 <<<