调试内核模块时,kgdb找不到源代码

时间:2012-12-28 04:00:58

标签: debugging linux-kernel kernel kernel-module kgdb

我想用kgdb调试内核模块,请执行以下操作:

gdb:add-symbol-file /home/gaoqiang/kernel-32/fs/ext4/ext4.ko 0xffffffffa0122000 -s .bss 0xffffffffa016b380 -s .data 0xffffffffa0168400

gdb:break ext4_getattr gdb:c

我成功进入了断点,但是gdb告诉我:“[没有可用的来源]”然后 如何让gdb找到模块的源代码?

2 个答案:

答案 0 :(得分:1)

根据您的问题

(gdb) add-symbol-file /home/gaoqiang/kernel-32/fs/ext4/ext4.ko 0xffffffffa0122000 -s .bss 0xffffffffa016b380 -s .data 0xffffffffa0168400

我假设模块出现在目录/ home / gaoqiang / kernel-32 / fs / ext4 /中。如果你的源代码也在目录中,那么gdb就不会给出错误/警告。

因此,如果ext4.ko模块的源文件说ext4.c,其余的不存在于该目录中,请将它们复制到目录中。

答案 1 :(得分:1)

 (gdb)set solib-search-path /home/gaoqiang/kernel-32/fs/ext4/