日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

qemu debug linux内核,qemu调试linux内核

發(fā)布時間:2025/3/19 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qemu debug linux内核,qemu调试linux内核 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2012.03.19

網(wǎng)上時間過早的講編譯內(nèi)核的文章完全不用看,比如什么講kgdb的,現(xiàn)在這個東西早就被集成到內(nèi)核里了。還有調(diào)試內(nèi)核的一些允許kernel

debugging的選項(xiàng),在新版本中也早已是默認(rèn)選中了。

簡單地說,qemu相當(dāng)于一個虛擬化的工具。

編譯過linux內(nèi)核有兩個部分,第一個是vmlinux文件,100多MB的樣子,包含源代碼的符號映射表;還有一個是bzImage,是壓縮過的內(nèi)核,只有幾MB。

qemu上運(yùn)行的內(nèi)容為:內(nèi)核bzImage +

磁盤鏡像xxx.img。磁盤鏡像可以用busybox制作,但是也可以從qemu官網(wǎng)下載已經(jīng)制作好的(左邊一欄選testing

qemu,有個文件叫l(wèi)inux-0.2.img),大約8MB。

qemu加這兩個東西,就變成了一個完整的Linux系統(tǒng)

切記用chmod命令修改內(nèi)核和磁盤鏡像文件的權(quán)限,否則可能導(dǎo)致qemu不能正常讀取。為了簡單我直接chmod 777

xxx了(所有用戶所有權(quán)限)。

#qemu-system-i386 -S -kernel bzImage -hda linux-0.2.img -append

root=/dev/sda

這就把磁盤鏡像和內(nèi)核掛載到qemu上了。此時qemu出現(xiàn)黑屏,按ctrl+alt+2進(jìn)入命令行終端模式。

在qemu命令行中輸入gdbserver,發(fā)現(xiàn)開始監(jiān)聽tcp:1234端口。(1234是qemu默認(rèn)設(shè)置)

新開一個終端,輸入 #gdb vmlinux,開始讀取大內(nèi)核及符號映射。設(shè)置斷點(diǎn) #br start_kernel

接著開始遠(yuǎn)程傳輸指令 #target remote localhost:1234

輸入#c?(continue),開始繼續(xù)執(zhí)行,此時內(nèi)核會自動執(zhí)行到start_kernel()函數(shù)并暫停。

高版本的C函數(shù)庫編譯的程序放在linux-0.2.img中可能會報錯,是由于該文件系統(tǒng)中的C庫過老導(dǎo)致的。編譯時采用靜態(tài)編譯即可解決這一問題

總結(jié)

以上是生活随笔為你收集整理的qemu debug linux内核,qemu调试linux内核的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。