I am trying to debug a kernel module that has been loaded after the start of a kgdb session.
Once I load the module, I do:
(gdb) add-symbol-file ~/ext2.ko 0xffffffffa01b1000
This works fine, and gdb knows the addresses of the symbols in the kernel module, to verify this:
At the KGDB target:
# cat /proc/kallsyms | grep ext2_ioctl
ffffffffa01b8210 t ext2_ioctl [ext2]
In GDB:
(gdb) p ext2_ioctl
$1 = {long int (struct file *, unsigned int, long unsigned int)} 0xffffffffa01b8210 <ext2_ioctl>
However when I try to list the code of a function in the module, it complaints that it does not have line number information:
(gdb) list ext2_ioctl
No line number known for ext2_ioctl.
Once I load the module, I do:
(gdb) add-symbol-file ~/ext2.ko 0xffffffffa01b1000
This works fine, and gdb knows the addresses of the symbols in the kernel module, to verify this:
At the KGDB target:
# cat /proc/kallsyms | grep ext2_ioctl
ffffffffa01b8210 t ext2_ioctl [ext2]
In GDB:
(gdb) p ext2_ioctl
$1 = {long int (struct file *, unsigned int, long unsigned int)} 0xffffffffa01b8210 <ext2_ioctl>
However when I try to list the code of a function in the module, it complaints that it does not have line number information:
(gdb) list ext2_ioctl
No line number known for ext2_ioctl.
The object file contains line number information as verified by:
# readelf -wL /root/ext2.ko
But why doesn't gdb load it when I do an 'add-symbol-file' ? What am I doing wrong here?
Thanks!
-Joel
But why doesn't gdb load it when I do an 'add-symbol-file' ? What am I doing wrong here?
Thanks!
-Joel