At 07:50 PM 17/02/2003 +0100, Dag-Erling Smorgrav wrote:
Mike Tancsa <[EMAIL PROTECTED]> writes:
> I am seeing a repeatable panic with a 4.x SMP machine (not when in uni
> mode). It never produces a crash dump, but always panics when periodic
> runs.

Hmm, it doesn't even seem to *try* to dump...  are you sure you have
configured a dump device?
Arrrrrrggggh... There was a typo on /etc/rc.conf :-(

dumpdev="/dev/twed0s1b"         # Device name to crashdump to (or NO).
dumpdir="/var/crash"    # Directory where crash dumps are to be stored
istead of the correct

/dev/twed0b

I have corrected that and did a

ns4# dumpon -v /dev/twed0b
dumpon: crash dumps to /dev/twed0b (147, 1)
ns4#


> instruction pointer     = 0x8:0xc0174830

This is the address of the instruction which caused the fault.  You
can run nm(1) on your kernel to find out where in the kernel that is,
e.g.:

# nm /kernel | grep \^c0174 | sort

ns4# nm /kernel | grep \^c0174 | sort
c0174034 t switch_timecounter
c01740c4 t sync_other_counter
c0174130 t tco_forward
c0174278 t sysctl_kern_timecounter_hardware
c0174310 T pps_ioctl
c01743fc T pps_init
c0174420 T pps_event
c0174578 T devsw
c017459c T cdevsw_add
c01746c4 T cdevsw_remove
c017471c T major
c017473c T minor
c017475c T lminor
c0174788 T makebdev
c01747d4 T makedev
c01748f4 T freedev
c0174980 T dev2udev
c017499c T udev2dev
c0174a00 T uminor
c0174a0c T umajor
c0174a18 T makeudev
c0174a28 T make_dev
c0174a68 T destroy_dev
c0174a90 T devtoname
c0174b2c T getdtablesize
c0174b54 T dup2
c0174bf4 T dup
c0174c4c T fcntl
ns4#

Does this actually show the location ?
ns4# gdb -k kernel.debug
GNU gdb 4.18 (FreeBSD)
Copyright 1998 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-unknown-freebsd"...Deprecated bfd_read called at /usr/src/gnu/usr.bin/binutils/gdb/../../../../contrib/gdb/gdb/dbxread.c line 2627 in elfstab_build_psymtabs
Deprecated bfd_read called at /usr/src/gnu/usr.bin/binutils/gdb/../../../../contrib/gdb/gdb/dbxread.c line 933 in fill_symbuf

(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)


this should give you a list of maybe a dozen symbols; the one you want
is the last one in the list that has a lower address than c0174830.

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

Thanks for responding. Your above comment was what was needed to triple check my rc.conf and correct the typo :(

---Mike

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

Reply via email to