使用说明
在以前的博客中说明过使用Qemu + BuildRoot来构建一个虚拟的嵌入式开发平台, 还写过使用Yocto + Qemu来构建一个Cortex-A9的嵌入式开发调试平台. 同时在很久以前也写过使用Eclipse + JLINK来调试ARM9. 而在工作学习中,有时候, 对内核源码的研究中, 需要单步对linux内核跟踪调试, 且大部分是关注与内核中某些组件的实现, 例如MM, Binder驱动, 这个时候直接使用Qemu + Eclipse来调试与开发就比使用硬件方便快捷得多了.
那么这篇文章中将使用: Yocto + Qemu + Eclipse来调试与开发kernel.
准备
获取Yocto的layers, 即metas, 然后构建一个MACHINE为qemux86的rootfs, 使用core-image-minimal为bitbake target构建对应的rootfs. 构建完成后就可以直接启动Yocto构建出来的Qemu来模拟调试了.
内核的准备
开启debug info, 以及Provide GDB scripts.
勾选FRAME POINTER
为gdb准备还需要开启KGDB.
关于如何开启与编译, 可以参考以前的Yocto的专栏文章.
编译完成后, 得到的vmlinux将会非常庞大, 因为包含了debug info. 而这个vmlinux将会在Eclipse中使用.
在Eclipse中准备调试配置
在Eclipse的Debug Configurations中新建一个C/C++ Attach to Application, 为什么是这个?