【发布时间】:2021-12-25 20:03:11
【问题描述】:
我正在尝试在 hypervision 下编写长模式来宾程序。当我向来宾注入外部中断时,来宾立即触发了#GP 故障。错误码为0x11,表示cs选择器为0x10,此故障为外部故障。 (#GP 故障被我的管理程序拦截了。换句话说,我没有在 IDT 中设置#GP 处理程序。)
我猜想我的 GDT 有问题。但是,我将中断处理程序的 cs 选择器(即:cs.selector=0x10)指定为正常的控制流。正常的控制流程与这个cs 选择器配合得很好,那么#GP 错误的真正具体原因可能是什么?
一份详尽的清单也将不胜感激。
【问题讨论】: