What use is the kernel-debuginfo package?
Chuck Ebbert
cebbert at redhat.com
Wed Mar 21 22:41:06 UTC 2007
Roland McGrath wrote:
>> 2) The path to the debug info is wrong anyway. In fact, there _is_
>> no path info in the .gnu_debuglink section of the kernel modules:
>
> They're not supposed to have directory names. Try elfutils tools, or gdb.
> They handle separate debuginfo well. e.g. eu-addr2line -k 0x... is nice.
> We don't yet have disassembly tools in elfutils, unfortunately.
Well, addr2line works because you point it directly to the .ko.debug file:
$ eu-addr2line -e ahci.ko.debug 0x0
drivers/ata/ahci.c:479
>
> gdb will deal well with a .ko and find its debug info, and has disassembly
> and source info. It doesn't have an interleaved output format AFAIK, though.
>
But how could gdb put the two separate files together when there is no
connection between them? How could it possibly know to go from:
/lib/modules/2.6.20-1.2925.fc6/kernel/drivers/ata/ahci.ko
to
/usr/lib/debug/lib/modules/2.6.20-1.2925.fc6/kernel/drivers/ata/ahci.ko.debug
without the full path name in the .gnu_debuglink section of the module?
The debug info file does have the full (and correct) pathname of the source:
comp_dir "/usr/src/debug/kernel-2.6.20/linux-2.6.20.i686"
This still isn't quite right; it should really be:
"/usr/src/debug/kernel-2.6.20/linux-2.6.20-1.2925.i686"
But that is really where the installer puts the files, so it's just a minor
packaging problem. (You can only have one 2.6.20 kernel source tree installed
for debugging using the current naming convention.)
> I've considered writing an "unstrip" to paste stripped and .debug file back
> together so you can use them with dumber tools.
>
Yeah, that would be nice.
More information about the Fedora-kernel-list
mailing list