kern/68442: panic - acquiring duplicate lock of same type:
Brian Fundakowski Feldman
green at FreeBSD.org
Tue Jun 29 10:00:15 PDT 2004
On Tue, Jun 29, 2004 at 06:30:28PM +0200, Daniel Lang wrote:
> John Baldwin wrote on Tue, Jun 29, 2004 at 12:00:12PM -0400:
> > Can you pop up gdb -k on the kernel.debug and do 'l *0xc053932b'
> Ahh, so stupid, I was close.
> Colin: I missed '-k', so forget my private reply.
> But however it is futile, since the -current gdb (6.1.1) does
> not allow -k. I've read on the list, that there is work in
> progress right now.
> I can copy the kernel image to a machine with a older -current
> which has working gdb -k. However I do not have the exact
> source tree there. I will see if I can check it out though.
> I'll get back to you, if I can come up with a line number
> that could make sense. Not sure how sensitive it is to
> have the "exact" source-tree.
You can find it out without using gdb, too. This will work for
only main kernel symbols, but you can do something similar for
KLDs. Say I want to find a symbol that's in the main kernel object:
$ objdump -t /boot/kernel/kernel | ruby -ne 'fields = $_.split; if fields == ".text" and fields == "F" and 0xc048a800.between?(fields.hex, fields.hex + fields.hex) then puts $_ end'
c048a7ac l F .text 0000006b cbb_removal
If I want to find a symbol from a different KLD, I have to adjust the address:
Id Refs Address Size Name
1 9 0xc0400000 3c1d90 kernel
2 1 0xc07c2000 5600 snd_ich.ko
3 2 0xc07c8000 1e8e8 snd_pcm.ko
4 14 0xc07e7000 4e050 acpi.ko
5 1 0xc1d35000 16000 linux.ko
$ objdump -t /boot/kernel/snd_ich.ko | ruby -ne 'fields = $_.split; if fields == ".text" and fields == "F" and (0xc07c3800 - 0xc07c2000).between?(fields.hex, fields.hex + fields.hex) then puts $_ end'
00001800 l F .text 0000007e ich_rd
Hope this helps.
Brian Fundakowski Feldman \'[ FreeBSD ]''''''''''\
<> green at FreeBSD.org \ The Power to Serve! \
Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\
More information about the freebsd-current