閱讀于淵編寫的《orange's 乙個作業系統的實現》,後面需要用gdb對c**進行除錯時,可以用gdb+bochs的方法進行跟蹤除錯,具體方法如下
1 按照如下鏈結中提供的方式,重新編譯安裝bochs
2 在makefile檔案當中,在cflags後面加上-g選項,加入除錯所需的符號表,ldflags中去掉-s選項。
3 這樣編譯出來的核心可能較大,當kernel.bin超過64k, 參照書中9.19節提供的方法進行調整即可。
4 進入kernel.bin所在資料夾,輸入命令 gdb kernel.bin, 用b設定斷點,例如b printf 或者b kernel_main,即可將斷點設定到對應的函式
5 按照1 中鏈結給出的方法修改bochsrc檔案,啟動bochs,然後在gdb中輸入target remote localhost:1234,即可連線到bochs
6 輸入c命令,如果正常,即可在4 中設定的斷點處停留
除錯截圖如下,左邊為bochs介面,右側為gdb的顯示內容
Bochs 除錯技術
bochs 除錯技術 freos hobby os frank wang 中國核芯網 對於任何想嘗試寫自己的作業系統的朋友來說,我都要向你推薦bochs。這個模擬器最大的好處就是可以單步除錯。在沒了解它之間,我在寫freos幾乎是瞎子,進展十分緩慢,特別是在你沒有完成顯示器驅動之前,你可以想象,看不...
bochs除錯技術
bochs除錯技術 除錯模式將出現下列命令列 bochs 1 下面初步說明一下每條指令的用法 執行控制命令 c 繼續執行,遇到斷點將停止 stepi count 執行count條指令,預設為1條 si count stepi的縮寫 step count 執行count條指令,預設為1條 s coun...
bochs除錯入門
bochs除錯入門 安裝sudo apt get install vgabios bochs bochs x bximage 建立軟盤 bximage fd一直回車,將在當前目錄下會建立乙個預設大小為1.44m的軟盤名為a.img。dd if boot of a.img bs 512 count 1...