How to implement an int3 handler to break execution in gdb, in a homemade kernel?

问题描述 投票:0回答:0

环境: qemu,qemu -s(内置gdbserver); x86,自制引导加载程序和内核; QEMU 读取一个硬盘映像,其中包含一个加载内核代码的引导加载程序。

目标: 进入保护模式,IDT已经加载。内核源代码中的一行

asm("int3");
应该暂停 gdb 中的执行(远程调试)。 (实现一个内联断点,方便调试)

我认为

asm("int3")
就像其他中断一样,它调用一个可以在IDT表中指定的处理程序。

问题:如何实现这个处理程序?

例如调用 qemu gdbserver 的一些 API? I/O 某个串口?这是正确的方向吗?

欢迎任何信息、想法、相关文件或现有实施。

operating-system gdb kernel qemu gdbserver
© www.soinside.com 2019 - 2024. All rights reserved.