bochs: bochsubuntu
sudo apt-get install bochs bochs-xvim
建立工程目錄並進入函數
在工程目錄下新建bochsrc.me文件工具
$ vim bochsrc.meui
cpu: model=core2_penryn_t9600, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def" cpu: cpuid_limit_winnt=0 memory: guest=512, host=256 ## vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest mouse: enabled=0 pci: enabled=1, chipset=i440fx private_colormap: enabled=0 floppya: 1_44=/dev/fd0, status=inserted ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15 ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11 ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9 ata0-master: type=disk, mode=flat,path="build/ratsos.img" boot: disk floppy_bootsig_check: disabled=0 log: bochsout.txt panic: action=ask error: action=report info: action=report debug: action=ignore, pci=report # report BX_DEBUG from module 'pci' debugger_log: - parport1: enabled=1, file="parport.out" #sound: driver=default, waveout=/dev/dsp. wavein=, midiout= #speaker: enabled=1, mode=sound
1. 運行.net
進入工程目錄
輸入 bochs
命令運行命令行
進入選擇命令行,輸入6啓動模擬器debug
2. 建立硬盤鏡像調試
bximage -mode=create -hd=128M -imgmode=flat -q icyos.imgcode
3. 根據配置文件運行
命令以下:
bochs -f bochsrc.me
4. Bochs調試
命令 | 說明 |
---|---|
blist | 顯示全部斷點信息 |
pb [物理地址] | 設置斷點,以物理地址方式 |
vb [虛擬地址] | 設置斷點,以虛擬地址方式 |
lb [線性地址] | 設置斷點,以線性地址方式 |
d [斷點號] | 刪除斷點 ,斷點號根據blist查詢 |
c | 繼續執行,跳到下一個斷點/ |
s [N] | 單步執行 |
n | 單步執行(跳過call函數內部 ) |
q | 退出 |
顯示信息
命令 | 說明 |
---|---|
show mode | 顯示模式切換 |
show int | 顯示中斷 |
show call | 顯示call調用 |
trace on | 顯示指令反編譯 |
info ivt | 顯示ivt(中斷向量表)信息 |
info idt | 顯示idt(中斷描述符表)信息 |
info gdt | 顯示gdt信息 |
info ldt | 顯示ldt信息 |
info tss | 顯示tss信息 |
info tab | 頁表映射 |
reg | 通用寄存器信息 + 標誌寄存器 + eip寄存器信息 |
sreg | 段寄存器信息 |
creg | 控制寄存器信息 |
dreg | 調試寄存器信息 |
print-stack N | 堆棧信息 |
內存信息
命令 | 說明 |
---|---|
xp /nuf [物理地址] | 顯示物理地址處內容,例如:xp /16 0xa0000 |
x /nuf [線性地址] | 顯示線性地址處內容 |
setpmem | |
page |