Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 May 2004 13:03:42 -0400
From:      "Robin P. Blanchard" <robin.blanchard@gactr.uga.edu>
To:        "John Baldwin" <jhb@FreeBSD.org>
Cc:        current@FreeBSD.org
Subject:   RE: Still panicing...
Message-ID:  <9B5C1FCAFB35084787C21EFFFA78DD9EE39B@EBE1.gc.nat>

next in thread | raw e-mail | index | archive | help

> Unfortunately this is missing the rest of the page fault=20
> panic messages including the 'trap 12' etc.  Those messages=20
> include a line that says 'cs:eip =3D 0x8:0xblah', and we need=20
> the 0xblah part to work out where the page fault happened. =20
> Usually these bugs are a NULL pointer deref that can often be=20
> easily fixed if we can find out where it happened.  Actually,=20
> though, the ip can be found from the tf_eip member of struct=20
> trapframe, which is 0xc05d1e69. =20
> Can you send the output of 'l *0xc05d1e69' from gdb on the=20
> same kernel.debug?
>=20
> --
> John Baldwin <jhb@FreeBSD.org>  <>< =20
> http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to=20
> Serve"  =3D  http://www.FreeBSD.org
>=20
>

Sure...here we go:

# gdb -k /usr/obj/usr/src/sys/fbsd5.vpn/kernel.debug ./vmcore.11=20
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you =
are
welcome to change it and/or 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.
This GDB was configured as "i386-undermydesk-freebsd"...
panic: page fault
panic messages:
---
---
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:236
236             dumping++;
(kgdb) bt full
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:236
No locals.
#1  0xc04cdb26 in boot (howto=3D256) at =
/usr/src/sys/kern/kern_shutdown.c:370
No locals.
#2  0xc04cdf5c in __panic () at /usr/src/sys/kern/kern_shutdown.c:548
        td =3D (struct thread *) 0xc1cef6e0
        bootopt =3D 256
        newpanic =3D 0
        ap =3D 0xd1022b8c "\f?f=C0\001"
        buf =3D "page fault", '\0' <repeats 245 times>
#3  0xc061e24c in trap_fatal (frame=3D0xd1022c30, eva=3D0) at
/usr/src/sys/i386/i386/trap.c:815
        code =3D 16
        type =3D 12
        ss =3D 16
        esp =3D 0
        softseg =3D {ssd_base =3D 0, ssd_limit =3D 1048575, ssd_type =3D =
27, ssd_dpl
=3D 0, ssd_p =3D 1, ssd_xx =3D 13,=20
  ssd_xx1 =3D 2, ssd_def32 =3D 1, ssd_gran =3D 1}
#4  0xc061ded2 in trap_pfault (frame=3D0xd1022c30, usermode=3D0, =
eva=3D3522064088)
    at /usr/src/sys/i386/i386/trap.c:733
        va =3D 3522060288
        vm =3D (struct vmspace *) 0x0
        map =3D 0x1
        rv =3D 1
        ftype =3D 1 '\001'
        td =3D (struct thread *) 0xc1cef6e0
        p =3D (struct proc *) 0xc1e5a528
#5  0xc061da8d in trap (frame=3D
      {tf_fs =3D -1066860520, tf_es =3D -788398064, tf_ds =3D =
-1068630000, tf_edi =3D
-788386540, tf_esi =3D 4098, tf_ebp =3D -788386588, tf_isp =3D =
-788386724, tf_ebx =3D
-1041914584, tf_edx =3D 0, tf_ecx =3D -772903432, tf_eax =3D 536870912, =
tf_trapno =3D
12, tf_err =3D 0, tf_eip =3D -1067639191, tf_cs =3D 8, tf_eflags =3D =
66066, tf_esp =3D
-1041914584, tf_ss =3D 2}) at /usr/src/sys/i386/i386/trap.c:420
        td =3D (struct thread *) 0xc1cef6e0
        p =3D (struct proc *) 0xc1e5a528
        sticks =3D 2405433344
        i =3D 0
        ucode =3D 0
        type =3D 12
        code =3D 0
        eva =3D 3522064088
#6  0xc05d1e69 in mmap (td=3D0xc1cef6e0, uap=3D0xd1022d14) at
/usr/src/sys/vm/vm_mmap.c:280
        fp =3D (struct file *) 0x0
        vp =3D (struct vnode *) 0x0
        addr =3D 0
        size =3D 69632
        pageoff =3D 3163
        prot =3D 54 '6'
        maxprot =3D 0 '\0'
        handle =3D (void *) 0xd1022d14
        flags =3D 4098
        error =3D -1041914584
        pos =3D -4481373134027661312
        vms =3D (struct vmspace *) 0xd1022cf8
#7  0xc061e630 in syscall (frame=3D
      {tf_fs =3D 47, tf_es =3D 47, tf_ds =3D 47, tf_edi =3D 0, tf_esi =
=3D 4096, tf_ebp
=3D -1077943656, tf_isp =3D -788386444, tf_ebx =3D 65536, tf_edx =3D 0, =
tf_ecx =3D
137734528, tf_eax =3D 198, tf_trapno =3D 12, tf_err =3D 2, tf_eip =3D =
137101951,
tf_cs =3D 31, tf_eflags =3D 642, tf_esp =3D -1077943700, tf_ss =3D 47}) =
at
/usr/src/sys/i386/i386/trap.c:1004
        params =3D 0xbfbfe278---Can't read userspace from dump, or =
kernel
process---

(kgdb) l *0xc05d1e69
0xc05d1e69 is in mmap (/usr/src/sys/vm/vm_mmap.c:280).
275                     PROC_LOCK(td->td_proc);
276                     if (addr =3D=3D 0 ||
277                         (addr >=3D =
round_page((vm_offset_t)vms->vm_taddr)
&&
278                         addr < round_page((vm_offset_t)vms->vm_daddr =
+
279                         lim_max(td->td_proc, RLIMIT_DATA))))
280                             addr =3D =
round_page((vm_offset_t)vms->vm_daddr
+
281                                 lim_max(td->td_proc, RLIMIT_DATA));
282                     PROC_UNLOCK(td->td_proc);
283             }
284             if (flags & MAP_ANON) {
(kgdb)=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9B5C1FCAFB35084787C21EFFFA78DD9EE39B>