采用大杀招QEMU调试Linux内核代码

采用大杀招QEMU调试Linux内核代码

大家好,又见面了,我是全栈君。

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

采用大杀招QEMU调试Linux内核代码

4. 调试内核

 这里须要有一个包括调试信息的vmlinux文件。能够直接编译http://free-electrons.com/pub/qemu/demos/arm/directfb/1.0/src/linux-2.6.20.tar.7z

 假设自己不想编译的话能够使用一个已编译好的vmlinux文件:http://pan.baidu.com/s/1sjuJYc1

 然后运行例如以下命令:

 $ arm-none-linux-gnueabi-gdb vmlinux

 在gdb在控制台输入:

  (gdb) target remote :1234

  (gdb) b start_kernel

 (gdb) c

 这一次,程序运行它会落在你设置断点start_kernel办公室。OK。所以,你可以调试内核任意代码!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116661.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月17日 下午9:00
下一篇 2022年1月17日 下午10:00


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号