Date: Thu, 26 Dec 1996 03:54:14 +0100 (MET) From: Greg Lehey <grog@lemis.de> To: curt@tkg.com (Curt Finch) Cc: questions@FreeBSD.org (FreeBSD Questions) Subject: Re: crash traceback Message-ID: <199612260254.DAA26571@freebie.lemis.de> In-Reply-To: <Pine.A32.3.91.961215102354.44402A-100000@spycam.tkg.com> from Curt Finch at "Dec 15, 96 10:27:39 am"
next in thread | previous in thread | raw e-mail | index | archive | help
Curt Finch writes:
>
>
> this is a traceback from a crash that occurs on my machine whenever i
> try to fire up X. This happens with two completely different video
> cards (one S3 and one S3V) with no other hardware (i.e. no ethernet
> card or sound card) in the machine.
I wonder how "completely different" these two boards are. Can you try
it with a completely different chip set (say, ATI or Cirrus)?
> anyone have a clue?
>
> freebsd2.1.5 xfree86 3.2 vga16 xserver in this case but the s3v and s3
> xservers also crash me
>
> i can make the dump and kernel available for analysis
>
>
> GDB 4.13 (i386-unknown-freebsd),
> Copyright 1994 Free Software Foundation, Inc...
> IdlePTD 207000
> current pcb at 1f9210
> panic: page fault
> #0 boot (howto=256) at ../../i386/i386/machdep.c:912
> 912 dumppcb.pcb_ptd = rcr3();
> (kgdb) #0 boot (howto=256) at ../../i386/i386/machdep.c:912
> #1 0xf0112b73 in panic (fmt=0xf01a724c "page fault")
> at ../../kern/subr_prf.c:116
> #2 0xf01a7d82 in trap_fatal (frame=0xefbffd6c) at ../../i386/i386/trap.c:748
> #3 0xf01a78f4 in trap_pfault (frame=0xefbffd6c, usermode=0)
> at ../../i386/i386/trap.c:670
> #4 0xf01a7563 in trap (frame={tf_es = 16, tf_ds = -257425392, tf_edi = 27,
> tf_esi = -1073545062, tf_ebp = -272630344, tf_isp = -272630380,
> tf_ebx = -2147483648, tf_edx = 0, tf_ecx = -266316512, tf_eax = 0,
> tf_trapno = 12, tf_err = 0, tf_eip = 0, tf_cs = 8, tf_eflags = 78470,
> tf_esp = -266598368, tf_ss = 0}) at ../../i386/i386/trap.c:310
This doesn't look nice. Your crash has wiped out the EIP register
(program counter), so you don't know where it happened.
> #5 0xf019d451 in calltrap ()
> #6 0xf012fb53 in spec_open (ap=0xefbffe1c)
> at ../../miscfs/specfs/spec_vnops.c:181
This is the function that called the function which crapped out. The
code at line 81 is:
VOP_UNLOCK(vp);
error = (*cdevsw[maj].d_open)(dev, ap->a_mode, S_IFCHR, ap->a_p);
VOP_LOCK(vp);
This looks as if you may have a corrupted cdevsw entry. With this
dump, try:
(kgdb) f 6 (select this stack frame)
(kgdb) p maj (show the major device number)
(kgdb) p cdevsw [maj] (show the contents of the entry)
I'd guess you'll find that cdevsw[maj].d_open is 0.
Let me know what the results are, and we can look further. I don't
have time to go through a full dump analysis, however.
Greg
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199612260254.DAA26571>
