欢迎光临散文网 会员登陆 & 注册

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 不支持段地址访问,所以需要特别适配。

下载需要的文件

一共需要下载三个文件,如果不能访问,附录中有原文:

  1. https://astralvx.com/storage/2021/05/gdb_init_real_mode.txt

  2. https://astralvx.com/storage/2021/05/target.xml

  3. https://astralvx.com/storage/2021/05/i386-32bit.xml

启动脚本

这个脚本启动后,会自动切换到 16 位模式,并且打印各种寄存器的信息。 会自动跳转到 0x7c00 断点处。

调试实模式

调试实模式

总结

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

附录


cut-off-5

target.xml

cut-off-5

i386-32bit.xml

cut-off-5

gdb_init_real_mode.txt


0161-GDB 调试实模式的评论 (共 条)

分享到微博请遵守国家法律