0161-GDB 調(diào)試實(shí)模式
2023-08-13 21:58 作者:jiangbo4444 | 我要投稿
環(huán)境
Time 2022-11-08
WSL-Ubuntu 22.04
QEMU 6.2.0
NASM 2.15.05
前言
說(shuō)明
參考:《x86匯編語(yǔ)言:從實(shí)模式到保護(hù)模式》李忠
參考:https://astralvx.com/debugging-16-bit-in-qemu-with-gdb-on-windows/
目標(biāo)
使用 GDB 調(diào)試十六位的匯編代碼。
實(shí)模式
在 8086 CPU 加電執(zhí)行完 ROM 之后,進(jìn)入的是實(shí)模式。訪問(wèn)的內(nèi)存地址對(duì)應(yīng)真實(shí)的物理地址。 訪問(wèn)方式是通過(guò)段地址 * 16 + 偏移地址的方式來(lái)訪問(wèn)。不過(guò) GDB 不支持段地址訪問(wèn),所以需要特別適配。
下載需要的文件
一共需要下載三個(gè)文件,如果不能訪問(wèn),附錄中有原文:
啟動(dòng)腳本
這個(gè)腳本啟動(dòng)后,會(huì)自動(dòng)切換到 16 位模式,并且打印各種寄存器的信息。 會(huì)自動(dòng)跳轉(zhuǎn)到 0x7c00 斷點(diǎn)處。
調(diào)試實(shí)模式

總結(jié)
使用 GDB 來(lái)調(diào)試實(shí)模式,通過(guò)下載三個(gè)文件來(lái)完成配置,并顯示出來(lái)各種寄存器的信息。
附錄

target.xml

i386-32bit.xml

gdb_init_real_mode.txt
標(biāo)簽: