Date: Sat, 02 Aug 2003 16:47:13 +0200 From: Eivind Olsen <eivind@aminor.no> To: current@freebsd.org Subject: Re: Yet another crash in FreeBSD 5.1 Message-ID: <1886375.1059842833@[192.168.0.2]> In-Reply-To: <3F2B803C.21D38E0B@mindspring.com> References: <1079.192.168.0.3.1059811884.squirrel@webmail.aminor.no> <3F2B803C.21D38E0B@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--On 2. august 2003 02:11 -0700 Terry Lambert <tlambert2@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@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@aminor.no>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1886375.1059842833>