Sky*_*Dan 5 debugging x86 assembly qemu
我为MBR部分编写了一个x86汇编程序.我编译如下:
nasm hellombr.asm -f bin -o hellombr.img
Run Code Online (Sandbox Code Playgroud)
然后我在qemu中运行它:
qemu -fda hellombr.img -boot a
Run Code Online (Sandbox Code Playgroud)
问题是我如何在源代码级别调试我的程序?
您应该nasm在 ELF 文件中创建调试符号,然后将其转储到要在 MBR 中使用的平面二进制文件。然后您可以指示 GDB 从 ELF 文件中读取必要的符号。
完整的过程将变成这样:
$ nasm hellombr.asm -f elf -g -o hellombr.elf $ objcopy -O 二进制 hellombr.elf hellombr.img $ qemu -s -S -fda hellombr.img -boot a $ 数据库 (gdb) 符号文件 hellombr.elf (gdb)目标远程本地主机:1234
对于标志的解释,我通过查看qemu这个答案。
| 归档时间: |
|
| 查看次数: |
1819 次 |
| 最近记录: |