0161-GDB 调试实模式
2023-08-13 21:58 作者:jiangbo4444 | 我要投稿
环境
Time 2022-11-08
WSL-Ubuntu 22.04
QEMU 6.2.0
NASM 2.15.05
前言
说明
参考:《x86汇编语言:从实模式到保护模式》李忠
参考:https://astralvx.com/debugging-16-bit-in-qemu-with-gdb-on-windows/
目标
使用 GDB 调试十六位的汇编代码。
实模式
在 8086 CPU 加电执行完 ROM 之后,进入的是实模式。访问的内存地址对应真实的物理地址。 访问方式是通过段地址 * 16 + 偏移地址的方式来访问。不过 GDB 不支持段地址访问,所以需要特别适配。
下载需要的文件
一共需要下载三个文件,如果不能访问,附录中有原文:
启动脚本
这个脚本启动后,会自动切换到 16 位模式,并且打印各种寄存器的信息。 会自动跳转到 0x7c00 断点处。
调试实模式

总结
使用 GDB 来调试实模式,通过下载三个文件来完成配置,并显示出来各种寄存器的信息。
附录

target.xml

i386-32bit.xml

gdb_init_real_mode.txt