我正在按照以下指南进行操作:
通过gdb调试内核和模块
当我尝试使用以下命令加载模块符号时:
(gdb) lx-symbols
gdb显示该命令未定义。如何将这些辅助命令添加到gdb中?
gdb信息:Centos 7.0上的gdb-7.6.1-51.el7.x86-64
gdb显示该命令未定义。如何将这些辅助命令添加到gdb中?
gdb信息:Centos 7.0上的gdb-7.6.1-51.el7.x86-64
script/gdb/
目录,因为那里可以获取这些脚本。scripts/gdb/
目录下吗? - Milind Dumbarecd /path/to/linux-build
然后启动 gdb:gdb vmlinux
。这些步骤应该是在你构建源代码的地方执行的。 - Milind Dumbareinfo auto-load python-scripts
来查看脚本是否已加载。顶级目录下的脚本符号链接已损坏,因为我将构建目录从虚拟机复制到不同位置的主机上,而符号链接实际上是绝对路径而不是相对路径。使用ln -sf scripts/gdb/vmlinux-gdb.py
修复符号链接并重新加载gdb,问题得到解决。 - fgiraldeauadd-auto-load-safe-path
用法:
gdb -ex add-auto-load-safe-path /path/to/linux/kernel/source/root
lx-symbols
已经可用。我也遇到了类似的问题。在我的情况下,问题是因为我没有将自动加载安全路径设置为../scripts/gdb/vmlinux-gdb.py而引起的,所以我创建了~/.gdbinit文件并添加了以下内容:
add-auto-load-safe-path path/to/linux/kernel/tree/scripts/gdb/vmlinux-gdb.py
(gdb) apropos lx
显示什么? - Milind Dumbare