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 <[EMAIL PROTECTED]> -- 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message