有没有直接查看出一个C函数其汇编代码行数的工具?
在linux内核发生oops的时候经常会出现 EIP: [<f82d2005>] hello_init+0x5/0x11问题出现在hello_init函数的汇编代码的第五行,函数一共11行,这个时候用objdump 反编译获得C函数的和会变函数的对照表,我觉得这个有点麻烦,能不能直接得出二者之间的对应关系表?求解各位大神 本帖最后由 firocu 于 2015-12-09 15:01 编辑
这是Al Viro的一个debug oops流程:-)
yarchive.net/comp/linux/oops_decoding.html 回复 1# 九阳神功爱喝茶
有个 addr2line 可以转换。
此外,本版精华帖汇总,也有如何定位 Oops 的介绍,你看一下。
好的,谢谢版主回复 3# Godbach
谢谢,我来看看回复 2# firocu
用了一下,蛮好用的。编译的时候加上-g选项;OOPS之后直接objdump -S XXX.o 即可获取汇编和C语言的同时编码对照 回复 6# 九阳神功爱喝茶
是的, objdump 也是可以的。此外,也可以多了解一下汇报。尤其是错误在函数开始或者结尾的,基本上通过汇报,也可以大致判断程序中对应的位置。
面对 OOPS 问题使用 vmlinux 进行调试简直是轻松加愉快
页:
[1]