Qemu 调试汇编内核

Qemu debugging an assembly kernel

我正在用汇编(引导加载程序和内核)编写 OS,并且我正在使用 QEMU 对其进行调试。
我想设置一些调试断点来暂停执行并一次只执行一条指令(单步)。我还想在运行时读取和设置寄存器和内存内容。我读到一种方法是使用 GDB。问题是我在搜索之前和之后都没有使用过 GDB 我意识到 GDB 使用了 C 编译器 (gcc) 在目标文件中放置的标签,不是吗?但正如我所说,我正在用汇编语言编写(使用 NASM)并且我有纯原始二进制文件,那么该怎么做呢?是否存在另一种方式?也许我可以创建自己的 GDB 服务器或类似的东西?

I realize that the GDB uses labels puted by the C compiler (gcc) in the object file

当标签可用时GDB 会这样做。如果不是,GDB 将显示原始地址。

没有什么能阻止您在原始地址上设置断点,即使其他 "labels" 可用。