我一直在按照本指南使用 gdb 和 VMWare 设置 Linux 内核调试环境。一切都进行得很顺利,直到那部分:
将 GDB 连接到调试对象
我们还不能看到来自加载的内核模块的符号。我们将加载帮助程序脚本,然后运行 lx-symbols,它将探测加载的模块并适当地配置 GDB:
(gdb) source home/alambert/kernel/source/linux-4.13.0/debian/build/build-generic/vmlinux-gdb.py
(gdb) lx-symbols
在我的系统上运行它时,我收到以下 python 错误:
pwndbg> source /home/user/kernel/source/linux-4.4.0/debian/build/build-generic/vmlinux-gdb.py
pwndbg> lx-symbols
loading vmlinux
Python Exception <class 'gdb.error'> There is no member named module_core.:
Error occurred in Python command: There is no member named module_core.
无论是调试器和被调试机器的虚拟机,被调试是Ubuntu的16.04和调试器是一个Ubuntu的18.04。
被调试者:
$ cat /proc/version
Linux version 4.4.0-134-generic (buildd@lgw01-amd64-033) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #160-Ubuntu SMP Wed Aug 15 14:58:00 UTC 2018 …