在模块开发学习到oops时,想要在oops.ko上加上调试信息,书上是在linux内核源代码顶层Makefile中如下:
ifdef CONFIG_DEBUG_INFO KBUILD_CFLAGS += -g KBUILD_AFLAGS += -gdwarf-2 endif
在其中define CONFIG_DEBUG_INFO这个宏,或者是把这对ifdef endfi去掉。但是我试过OK后,又觉得这样有点不妥,就这一个内核模块要加调试信息,就把内核中的Makefile就动了,想想看在模块目录下的Makefile改改能不能把这个宏添加上,这样也不影响其它的。
我就幻觉般的在命令处用-DCONFIG_DEBUG_INFO却不好使,man一下才这个不是gcc,没有这个功能。也不知道怎么描述,google了一会儿也没有结果。绝望之际就把它当成Makefile中的变量一样直接赋值为1,就是:CONFIG_DEBUG_INFO=1。还别说给蒙上了,就可以的,编译好的模块,再用:arm-linux-objdump -D -S oops.ko > log。打开一看,有我要的对应汇编的C代码。
Makefile代码截图:
make过程截图:
反汇编代码过截图:
就是个笔记。
作者:kangear 发表于2013-2-17 2:10:13 原文链接
阅读:126 评论:0 查看评论