码迷,mamicode.com
首页 > 系统相关 > 详细

使用QEMU调试Linux内核代码

时间:2014-08-20 19:31:12      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   os   io   文件   ar   art   

Linux内核代码的调试非常麻烦,一般都是加printk, 或者用JTAG调试。这里的方法是用QEMU来调试Linux内核。因为QEMU自己实现了一个gdb server, 所以可以非常方便的使用gdb来调内核。

这对内核的学习也非常有帮助。


为了尽量不多花时间在QEMU设置上,这里直接使用以下的内核image:

http://free-electrons.com/community/demos/qemu-arm-directfb/


1,QEMU的安装

这个可以自己去QEMU的官网下载编译,如果自己手头上的发行版有对应QEMU的包的话那也可以直接安装。

CentOS的话参考前面的 CentOS rpm 额外包的源


2,下载对应的内核映像

从以下网址下载:http://free-electrons.com/pub/qemu/demos/arm/directfb/1.0/ 这里面有一个vmlinuz-qemu-arm-2.6.20


3,启动QEMU

使用如下命令启动:

$ qemu-system-arm -M versatilepb -m 16 -kernel vmlinuz-qemu-arm-2.6.20 -append "clocksource=pit quiet rw" -S -s


4,调试内核

这里需要有一个包含调试信息的vmlinux文件,可以直接编译http://free-electrons.com/pub/qemu/demos/arm/directfb/1.0/src/linux-2.6.20.tar.7z

如果自己不想编译的话可以使用一个已编译好的vmlinux文件。

然后执行如下命令:

$ arm-none-linux-gnueabi-gdb vmlinux

在gdb的控制台输入:

(gdb) target remote :1234
(gdb) b start_kernel
(gdb) c

这时候程序执行就会落在你设定的断点start_kernel处。OK。这样你就可以随意调试内核代码了!

 

更多精彩linux视频教程,尽在51CTO学院:
bubuko.com,布布扣

使用QEMU调试Linux内核代码,布布扣,bubuko.com

使用QEMU调试Linux内核代码

标签:blog   http   使用   os   io   文件   ar   art   

原文地址:http://www.cnblogs.com/itcourse/p/3925213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!