1. 修改编译用的Makefile文件,增加变量EXTRA_CFLAGS
EXTRA_CFLAGS := -g3
使得编译出的模块有用于调试的符号等信息。
2. 用objdump做一份综合模块各种信息的文件,包括二进制指令,反汇编生成的指令,还有源码。
objdump -d -S LKM-To-Debug.ko > objdumped.txt
保存在objdumped.txt
3. 用串口连接被调试的机器,见这里。
4. Kernel Oops或者Panic之后,查看从串口dump出来的信息。包括EIP,还有Code段等。利用这些信息和第2步生成的文件(objdumped.txt)进行分析,抓出异常原因,。
可参考文档:
1. Documentation/oops-tracing.txt
没有评论:
发表评论