sudo ./configure --enable-debugger --enable-disasm
sudo make
sudo make install
啟動帶有除錯的 bochs 之後,我們會看到bochs 會進入乙個選項介面,我們選擇『6.begin simulation』就可以開始除錯了行為指令
舉例在某實體地址設定斷點
b addr
b 0x7c00
顯示當前所有斷點資訊
info break
info break
繼續執行,直至遇到斷點cc
單步執行ss
單步執行(遇到函式跳過)nn
檢視暫存器資訊
info cpurfp
sreg
creg
info cpurfp
sreg
cre檢視堆疊
print-stack
print-stack
檢視記憶體實體地址內容
xp /nuf addr
xp /40bx 0x9013e
檢視線性位址內容
x /nuf addr
x /40bx 0x13e
反彙編一段記憶體
u start end
u 0x30400 0x3040d
反彙編執行的每一條指令
trace-on
trace-on
每執行一條指令就列印 cpu 資訊
trace-reg
trace-reg
- 我們可以使用 help 來檢視除錯幫助
b 0x7c00
c00000003305i[bios ] $revision: 1.257 $ $date: 2011/01/26 09:52:02 $
……00014041008i[bios ] booting from 0000:7c00
(0) breakpoint 1, 0x00007c00 in ?? ()
next at t=14041069
(0) [0x000000007c00] 0000:7c00 (unk. ctxt): mov ax, cs ; 8cc8
x /64xb 0x7c00
[bochs]:
0x00007c00 : 0x8c 0xc8 0x8e 0xd8 0x8e 0xc0 0xe8 0x02
0x00007c08 : 0x00 0xeb 0xfe 0xb8 0x1e 0x7c 0x89 0xc5
0x00007c10 : 0xb9 0x0d 0x00 0xb8 0x01 0x13 0xbb 0x0c
0x00007c18 : 0x00 0xb2 0x00 0xcd 0x10 0xc3 0x48 0x65
0x00007c20 : 0x6c 0x6c 0x6f 0x2c 0x20 0x77 0x6f 0x72
0x00007c28 : 0x6c 0x64 0x21 0x00 0x00 0x00 0x00 0x00
0x00007c30 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00007c38 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
nnext at t=14041070
(0) [0x000000007c02] 0000:7c02 (unk. ctxt): mov ds, ax ; 8ed8
trace-reg on
register-tracing enabled for cpu0
nnext at t=14041071
eax: 0x00000000 0
ecx: 0x00090000 589824
edx: 0x00000000 0
ebx: 0x00000000 0
esp: 0x0000ffd6 65494
ebp: 0x00000000 0
esi: 0x000e472c 935724
edi: 0x0000ffac 65452
eip: 0x00007c04
eflags 0x00000082: id vip vif ac vm rf nt iopl=0 of df if tf sf zf af pf cf
(0) [0x000000007c04] 0000:7c04 (unk. ctxt): mov es, ax ; 8ec0
c……
《作業系統真象還原》 1 5 執行bochs
終於安裝完成了,雖然這過程中有可能會出現各種各樣的問題,但還是值得慶祝的,對linux不熟的朋友第一次就搞定了這麼個硬貨,我理解您此時的喜大普奔之情,哈哈,給大家點讚。順便說一句,其實平時我們的運維人員為開發環境付出了遠比這更多的努力,所有奮戰在一線的系統工程師和運維工程師,您們辛苦了。不過好奇心讓...
使用Virtualbox除錯自製作業系統
自製作業系統,如果每次都用物理機除錯,未免太慢了,30天自製作業系統 裡使用的pc模擬器qemu軟體,但是實際上,使用虛擬機器是乙個很不錯的選擇,功能強大,除錯方便。以下實現乙個簡單的hello world用例,來自 30天自製作業系統 hello os tab 4 org 0x7c00 指明程式裝...
作業系統原理與實現 Bochs與GDB
二 gdb bochs是乙個x86硬體平台的開源模擬器。它可以模擬各種硬體的配置。bochs模擬的是整個pc平台,包括i o裝置 記憶體和bios。更為有趣的是,甚至可以不使用pc硬體來執行bochs。事實上,它可以在任何編譯執行bochs的平台上模擬x86硬體。通過改變配置,可以指定使用的cpu ...