Mike Tancsa <[EMAIL PROTECTED]> writes:
> ns4# nm /kernel | grep \^c0174 | sort
> [...]
> c01747d4 T makedev
> c01748f4 T freedev

This is it (makedev)

> Does this actually show the location ?
> ns4# gdb -k kernel.debug
> [...]
> (kgdb) list *0xc0174830
> 0xc0174830 is in makedev (/usr/src/sys/kern/kern_conf.c:208).
> 203             if (x == umajor(NOUDEV) && y == uminor(NOUDEV))
> 204                     Debugger("makedev of NOUDEV");
> 205             udev = (x << 8) | y;
> 206             hash = udev % DEVT_HASH;
> 207             LIST_FOREACH(si, &dev_hash[hash], si_hash) {
> 208                     if (si->si_udev == udev)
> 209                             return (si);
> 210             }
> 211             if (stashed >= DEVT_STASH) {
> 212                     MALLOC(si, struct specinfo *, sizeof(*si), M_DEVT,
> (kgdb)

Yep.  Looks like si is garbage:

> fault virtual address   = 0x211e6d36

is most likely the value of si at the time of the crash.  It's nowhere
near kernel memory (which starts at 0xc0000000).

If / when you get a dump, show me the backtrace and the value of x, y
and udev (as reported by gdb operating on the recovered core)

> > How do you build your kernels - 'make buildkernel' or manually?
> Always make buildkernel. I have a debug kernel built as well
> (makeoptions     DEBUG=-g)

That's what I wanted to know.

DES
-- 
Dag-Erling Smorgrav - [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to