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

0175-GDB 调试 multiboot 启动

2023-08-19 13:09 作者:jiangbo4444  | 我要投稿

环境

  • Time 2022-11-12

  • WSL-Ubuntu 22.04

  • QEMU 6.2.0

  • NASM 2.15.05

前言

说明

参考:https://os.phil-opp.com/multiboot-kernel/

目标

使用编写好的内核可执行文件,直接从 QEMU 启动,启动时暂停 CPU,使用 GDB 调试。

汇编代码

编译 debug 版本

nasm -f elf32 -g boot.asm -g 参数可以增加调试信息。

链接

linker.ld 文件内容:

链接命令:ld -T linker.ld -m elf_i386 boot.o -o kernel.elf

启动 QEMU

qemu-system-x86_64 -kernel kernel.elf -display curses -s -S

启动 GDB 调试

  • 启动命令:gdb kernel.elf

  • 设置架构:set architecture i386:x86-64

  • 增加断点:break start,在入口增加了一个断点。

效果

调试QEMU启动

通过 GDB 调试可以显示源码,单步调试时,自动显示下一条指令。 通过 CR0 寄存器,可以看到 PE,即保护模式已启用。

总结

从 QEMU 中启动 心中了调试信息的 kernel.elf,并且通过 GDB 连接调试。

附录


0175-GDB 调试 multiboot 启动的评论 (共 条)

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