我想用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找到模块的源代码?
答案 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/