debugging the linux kernel under ubuntu 11.04

來源:互聯網
上載者:User

以前有一段時間,因為某些原因,一直在使用windows xp,在上面用vmware裝了一個CentOS5.5,後來升級到5.6,就一直在上面做一些核心的開發,在上面編譯核心,在上面debug 核心。這樣做有一個麻煩的事情,就是有時候時間比較緊的話,就會不方便,比如說早上起來時間不多,7點起來,8點要去上班,一個小時的時候,起來看看別人回的郵件,要改一個patch,然後resend,因為去公司就不能上網了,就算在公用上網區的話,發patch也不好,用web gmail又會破壞補丁的格式,也不合適,所以就只能在早上這個時間及時地改完patch然後發上去,這樣就得先開系統,然後看郵件,然後開虛擬機器,然後改patch,再提交上去,時間經常是不夠用,總是覺得很麻煩。從4月ubuntu 11.04出來後,換上了,然後就是前面的麻煩都省去了,相當不錯,改代碼也快了,編譯起來也快不少。很給力。

看代碼,改代碼,用vim就相當好了,加上cscope,只要make O=../latest V=1 cscope產生.out的cscope tag檔案,看代碼的時候加進去就OK,挺不錯的。

debug的時候,可以用qemu,這樣很方便,在host上修改,編譯,然後在qemu上test。非常方便。

可以編譯一個qemu,也可以直接在ubuntu直接安裝。

apt-get install qemu qemu-pxe

然後可以去qemu官網上下一個disk img,也可以自己做一個disk img,然後自己安裝一個,但是這樣比較麻煩,對於debug kernel來說我覺得也不需要多少,用這個就可以了。

下一個linux-0.2.img.bz2,解壓出來。linux-0.2.img

為了方便,寫一個shell:

$cat qemu.sh #!/bin/bashqemu-system-x86_64 -s -S -hda ./linux-0.2.img -append "root=/dev/sda1 console=ttyS0 console=tty0" -serial file:./kernel.log -kernel $1 -initrd $2  

可以不加-S選項,直接運行,加上-S後,可以在另一個終端下用gdb串連。

./qemu.sh vmlinuz-2.6.39+ initrd-2.6.39+

gdb /path/to/vmlinuz

(gdb)$target remote localhost:1234

(gdb)$

嗯。這樣就可以了。

前面vmlinuz-x.y.z,initrd-x.y.z,就是編譯出來的kernel和initramfs。

make O=../latest V=1 -j4

make O=../latest V=1 modules_install

cp ../latest/arch/x86/boot/bzImage ../kernel_test/vmlinuz-2.6.39+

mkinitramfs -k -o initrd.img-2.6.39+ -v 2.6.39+

嗯,就是這樣。

ref:

http://wiki.qemu.org/Manual

http://people.debian.org/~aurel32/qemu/armel/

http://www.cs.swarthmore.edu/~newhall/unixhelp/qemu_guide.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.