No line number info debugging kernel modules with gdb 6.6.90.20070926-cvs (gdb 6.7 branch)

Jon Ringle
2007-09-27T15:34:36Z

Hi,

I did a cvs checkout of the 6.7 branch:
cvs -d :pserver:anoncvs@sourceware.org:/cvs/src co -r gdb_6_7-branch gdb

As I used it to debug a kernel module, I found that gdb could get line
number info for my kernel module.

On my target:
[root@isc1 ~]# grep dstdrv /proc/modules
dstdrv 33692 0 - Live 0xbf131000

On my host:
ringlej@crossdev:~/WAVE/Build7/Platform/Volcano/os/kernel/linux$ file
../../kernel-modules/dst/dstdrv.ko
../../kernel-modules/dst/dstdrv.ko: ELF 32-bit MSB relocatable, ARM,
version 1 (ARM), not stripped
ringlej@crossdev:~/WAVE/Build7/Platform/Volcano/os/kernel/linux$
~/build/armeb-linux-gdb-6.7/gdb/gdb vmlinux
GNU gdb 6.6.90.20070926-cvs
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu
--target=armeb-linux"...
(gdb) add-symbol-file ../../kernel-modules/dst/dstdrv.ko 0xbf131000
add symbol table from file "../../kernel-modules/dst/dstdrv.ko" at
.text_addr = 0xbf131000
(y or n) y
Reading symbols from
/home/ringlej/WAVE/Build7/Platform/Volcano/os/kernel-modules/dst/dstdrv.
ko...done.
(gdb) directory ../../kernel-modules/dst/
Source directories searched:
/home/ringlej/WAVE/Build7/Platform/Volcano/os/kernel/linux-2.6.16.29/../
../kernel-modules/dst:$cdir:$cwd
(gdb) target remote bdilab:2001
Remote debugging using bdilab:2001
cpu_idle () at include/asm/bitops.h:177
177 return (p[nr >> 5] >> (nr & 31)) & 1UL;
(gdb) b vert_dst_nopage_mmap
Breakpoint 1 at 0xbf1342b4
(gdb) list vert_dst_nopage_mmap
No line number known for vert_dst_nopage_mmap.

GDB has enough information to set the breakpoint correctly, but can't
seem to find line info for the kernel module.

Jon