免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1877 | 回复: 2
打印 上一主题 下一主题

[内核入门] 如何给kernel解压缩部分加上"-g"选项? [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-10 06:20:00每日论坛发贴之星
日期:2016-08-10 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-26 20:19 |只看该作者 |倒序浏览
各位大侠,兄弟准备调试下kernel解压缩部分的代码,可是我发现在"make menuconfig"里选择了"compile the kernel with debug info" 选项后kernel部分确实有了debug信息,但是解压缩部分的代码并没有包含调试信息,请问如何给kernel解压缩部分加上调试选项?谢谢!
我用的平台是:arm1176.
kernel version:"linux-linaro-3.4-2012.05-1".

论坛徽章:
0
2 [报告]
发表于 2012-12-27 14:16 |只看该作者
啊?!这块的问题?这块出问题该怎么调啊?没有想过啊!

加-g倒是简单,找到的源文件,在Makefile里面加编译选项就OK了。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-10 06:20:00每日论坛发贴之星
日期:2016-08-10 06:20:00
3 [报告]
发表于 2012-12-27 14:51 |只看该作者
新进展,找到了相关的Makefile了,我在"./arch/arm/Makefile“的如下一行加上的:
arch-$(CONFIG_CPU_32v6)         :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
改为
arch-$(CONFIG_CPU_32v6)         :=-D__LINUX_ARM_ARCH__=6 -O1 -g $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
另外,我发现在调用objcopy由arch/arm/boot/compressed/vmlinux生成arch/arm/boot/zImage时的选项"-S"会删除相关的调试信息,所以要把"./arch/arm/Makefile"里的"OBJCOPYFLAGS"选项中的"-S"选项去掉,我同时把“-R .comment"选项也去掉了,这样就可以在调试时看到调试信息了,在uboot里调用"bootm"时会停在第一条指令的地方0x8000,这时调用
"add-symbol-file ./arch/arm/boot/compressed/vmlinux 0x8000"就可以看到相应的调试信息了。
但是这时又出现了一个新的问题:
我发现汇编指令和相应的源代码对不上,会相差十几行左右,大家遇到过这种情况吗?请帮忙指点下,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP