我已经全部配置完毕CONFIG_DEBUG_
相关选项y
,但是当我尝试调试内核时,它说找不到调试符号:
gdb /usr/src/linux-2.6.32.9/vmlinux /proc/kcore
Reading symbols from /usr/src/linux-2.6.32.9/vmlinux...(no debugging symbols found)...done.
Why?
到目前为止,这是我最好的猜测:我不知道,但这并不重要。
我不知道为什么 GDB 打印消息“(未找到调试符号)”。我在构建自己的内核时实际上已经看到了这一点。我将内核配置为使用调试符号,但 GDB 在查看内核映像时仍然打印此消息。我从来没有费心去研究它,因为我的图像仍然可以很好地调试。尽管有该消息,GDB 仍然可以反汇编函数、添加断点、查找符号以及单步执行函数。我从来没有注意到缺少调试功能。我猜你也会遇到同样的事情。
Edit:根据您对问题的评论,您似乎正在使用调试器搜索错误的符号。系统调用处理程序以前缀开头sys_
,但是单看代码是看不出来的。宏观SYSCALL_DEFINE4(ptrace, ...)
最终将函数声明为asmlinkage long sys_ptrace(...)
,尽管它会做一些其他疯狂的事情,如果你有的话ftrace已启用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)