我想用 kgdb 调试内核模块,请执行以下操作:
gdb:添加符号文件/home/gaoqiang/kernel-32/fs/ext4/ext4.ko 0xffffffffa0122000 -s .bss 0xffffffffa016b380 -s .data 0xffffffffa0168400
gdb:中断 ext4_getattr gdb:c
我成功到达断点,但 gdb 告诉我:“[No Source Available]”那么如何让 gdb 找到模块的源代码?
我想用 kgdb 调试内核模块,请执行以下操作:
gdb:添加符号文件/home/gaoqiang/kernel-32/fs/ext4/ext4.ko 0xffffffffa0122000 -s .bss 0xffffffffa016b380 -s .data 0xffffffffa0168400
gdb:中断 ext4_getattr gdb:c
我成功到达断点,但 gdb 告诉我:“[No Source Available]”那么如何让 gdb 找到模块的源代码?
根据你的问题
(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
和其余的不存在于该目录中,请将它们复制到该目录中。
(gdb)set solib-search-path /home/gaoqiang/kernel-32/fs/ext4/