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