Yet another crash in FreeBSD 5.1

Eivind Olsen eivind at aminor.no
Sat Aug 2 07:46:10 PDT 2003


--On 2. august 2003 02:11 -0700 Terry Lambert <tlambert2 at mindspring.com> 
wrote:
>> db> trace
>> g_dev_strategy(c2156024,c2153800,0,cfb528d0,c2099eca) at
>> g_dev_strategy+0x29 launch_requests(c299bf00,0,10000,ffffffff,47) at
>> launch_requests+0x448 vinumstart(c5ada2d0,0,c22ab000,cfb5294c,c02e5bc6)
>> at vinumstart+0x2b2
> gdb -k kernel.debug
> (gdb) list *(g_dev_strategy+29)
> [ ... ]
> (gdb) list *(launch_requests+448)
> [ ... ]
> (gdb) list *(vinumstart+2b2)
> [ ... ]
> Will give you the exact source lines involved, assuming you
> built a debug kernel.

I did. At least I've tried to. :)
(I have a kernel.debug which was compiled at the same time as the real 
kernel I'm using, and it's approx. 30MB in size).

> You don't actually need a crash dump to debug a stack traceback.

This is what I found by using those commands you mentioned:

eivind at vimes:~/tmp/debug > gdb -k kernel.debug
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"...
(kgdb) list *(g_dev_strategy+29)
0xc02e812d is in g_dev_strategy (/usr/src/sys/geom/geom_dev.c:415).
410             KASSERT(cp->acr || cp->acw,
411                 ("Consumer with zero access count in g_dev_strategy"));
412
413             bp2 = g_clone_bio(bp);
414             KASSERT(bp2 != NULL, ("XXX: ENOMEM in a bad place"));
415             bp2->bio_offset = (off_t)bp->bio_blkno << DEV_BSHIFT;
416             KASSERT(bp2->bio_offset >= 0,
417                 ("Negative bio_offset (%jd) on bio %p",
418                 (intmax_t)bp2->bio_offset, bp));
419             bp2->bio_length = (off_t)bp->bio_bcount;
(kgdb) list *(launch_requests+448)
No symbol "launch_requests" in current context.
(kgdb) list *(vinumstart+2b2)
No symbol "vinumstart" in current context.
(kgdb)

If anyone wants to take a look at this themselves I've put the compressed 
(gzip) debug-kernel available on 
http://eivind.aminor.no/debug/kernel.debug.gz
NOTE! It's approx. 13MB compressed!

-- 
Regards / Hilsen
Eivind Olsen
<eivind at aminor.no>


More information about the freebsd-current mailing list