Bochs虛擬機器debug指令

2021-07-11 08:29:11 字數 1023 閱讀 1925

在學習《linux核心完全注釋》時,為了方便,直接使用了趙博提供的linux-0.11-devel-040923.zip來debug,幫助理解**。

後來又在哈工大的**上發現了他們作業系統課程的實驗,同樣是關於linux 0.11版本的。

後來在使用的過程中,我發現趙博使用的是bochs 2.1.1,而哈工大的oslab使用的是bochs 2.3.7版本。兩者的debug指令有幾個差別:

操作2.1.1

2.3.7

顯示通用暫存器狀態

info r

r顯示cpu狀態

info cpu

dump_cpu

檢視段選擇符狀態

sreg

dump_cpu

檢視控制暫存器狀態

creg

dump_cpu

除了最新版本增加了幾個debug指令外,其他都相同。

這裡再列舉出幾個重要的debug指令:

操作指令

舉例連續執行

c單步執行

s [count]

s 10

列印棧print-stack [num words]

print-stack 10

檢視資料段內容

x /[nuf] [addr]

x /4x ds:0x1918a

在實體地址上設定斷點

b [addr]

b 0x641c

在虛擬位址上設定斷點

vb [seg:addr]

vb 0x0000:0x7c00

檢視斷點

info b

info b

刪除斷點

delete [n]

delete 1

檢視從當前指令開始的給定行數的反彙編

u /[n]

u /100

對給定的線性位址範圍內的指令進行反彙編

u [start] [end]

u 0x7410 0x7450

更詳細的指令說明請參考bochs的debugger指令說明

一 bochs虛擬機器配置

配置資訊 boot floppy 軟盤啟動 floppy type 1 44,1 44 boot.img status inserted,write protected 0 軟盤容量1.44m,映象檔案名boot.img,狀態為已被裝入,寫保護關閉。megs 2048 設定虛擬平台空間可用物理記憶體...

虛擬機器 指令寫出

是的,還有幾個節點的指令生成沒有測試呢,包括流控制語句,io.不過呢,流控制是相對比較容易優化的,進行 生成指令再對比 的測試不太好維護,而 io 指令很簡單 所以要不這樣,把指令寫出來,然後開個虛擬機器執行,如果執行沒問題就算測試通過了.一些常見的語義錯誤處理在之前的之前的內容中都以注釋形式出現,...

虛擬機器指令 shell的使用

在linux學習者初步使用和學習linux的時候,會發現我們對這套作業系統是比較陌生的。而我們想要玩轉linux,那麼就不得不執行一些具有威脅性質的指令,可能會更改系統檔案,在此過程中,稍有不慎就可能會導致系統無法使用甚至癱瘓。因此保險起見,我們在最初的階段,將使用虛擬機器來幫助我們先去了解linu...