From owner-freebsd-current Thu Jan 18 13: 9:34 2001 Delivered-To: freebsd-current@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id EE55C37B400 for ; Thu, 18 Jan 2001 13:09:13 -0800 (PST) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.1/8.9.3) with ESMTP id f0IL6xL65432; Thu, 18 Jan 2001 13:06:59 -0800 (PST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <5.0.2.1.0.20010118201134.00a542c0@tfrsolcom> Date: Thu, 18 Jan 2001 13:09:07 -0800 (PST) From: John Baldwin To: Rogier Mulhuijzen Subject: RE: Panic w/crash dump (looks like atomic.h problem) Cc: freebsd-current@FreeBSD.org Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 18-Jan-01 Rogier Mulhuijzen wrote: > >>If you look at the traceback, vref() was called with a NULL vnode as its >>parameter, so the panic is due to dereferencing a NULL pointer, not a bug in >>the atomic ops. :) As to why the kernel was vref()'ing a NULL pointer, I >>have >>no idea. > >#11 0xc01c057f in vref (vp=0x0) at machine/atomic.h:332 >#12 0xc0f7aa82 in ?? () >#13 0xc0f7b933 in ?? () >#14 0xc0f7de1c in ?? () >#15 0xc0f7abb5 in ?? () >#16 0xc01c8acc in vn_read (fp=0xc105e9c0, uio=0xc7ff1ee4, cred=0xc1047600, > flags=0, p=0xc7f61540) at vnode_if.h:279 >#17 0xc019b9ba in dofileread (p=0xc7f61540, fp=0xc105e9c0, fd=9, > buf=0x8223c00, nbyte=512, offset=-1, flags=0) at ../../sys/file.h:141 > > Yup, looks like you're right. Totally overlooked that. (Can you tell > reading this is new to me? =) ) > > My next question is, where are those ??'s from in #12 - #15? Could they be > addresses in kernel modules? Yes. > If so, how do I readable output from that, save compiling everything into > the kernel statically? Static kernel is easiest, esp. if you can reproduce this. Otherwise you have to do other fun stuff to read in the symbols from the module. FWIW, if you are doing development or running -current, use a static kernel. If you are writing a specific device driver, then use a module for that, but make the rest of your kernel static. It's just easier that way. Also, for reading module symbols in, I think there is a relatiely easy way to do this now in gdb, but I don't know what it is. Of course, gdb -k is kind of broken right now because it hasn't caught up to the latest round of per-cpu changes.. > DocWilco -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message