標籤: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學院:http://edu.51cto.com/course/courseList/id-48.html