请教内核down掉时的内核符号的调试
偶是2.4,没有kallsyms
内核无情地死掉了:
- Backtrace:
- Function entered at [<c006f2c0>] from [<c012565c>]
- Function entered at [<c01255ec>] from [<c0125d48>]
- ……
复制代码
像c012565c这种,我在System.map和/proc/ksyms中都查不到,应该如何查到它对应的符号名称呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
yeah
编译内核时最好打开kernel hacking部分中的几个选项, 例如with stack frame我是必选的
这句是什么意思?
如果这些函数没有被导出,那么它们的符号是不会在ksyms中的,在ksyms中的符号都是公共符号,可以被其它模块使用的符号。
而且如果你的这些符号是在模块中的话,你要在模块加载上去后,再去看ksyms才可以看到模块中的符号,如果模块一加载上去,系统就玩完,那么可以用insmod -m来查看模块的符号。
把当时编译内核生成的vmlinux反汇编后(objdump -D vmlinux > output.txt),在里面应该能找到这个地址,然后就能找到在哪个函数除了问题。