我正在写一个具有中断和系统调用功能的kernel(QEMU/i386),当kernel加载app至内存中并执行iret指令从核心态返回用户态后,在gdb中执行单步调试,每次单步执行,只有EIP寄存器的内容加2,其余寄存器均不变。程序中的指令似乎并没有被正确执行。
请问哪些错误可能导致这种情况的发生。
我正在写一个具有中断和系统调用功能的kernel(QEMU/i386),当kernel加载app至内存中并执行iret指令从核心态返回用户态后,在gdb中执行单步调试,每次单步执行,只有EIP寄存器的内容加2,其余寄存器均不变。程序中的指令似乎并没有被正确执行。
请问哪些错误可能导致这种情况的发生。
问题已经在 stack overflow 上得到解决,附上链接如下:
Why my cpu seems to lose the ability to decode - stack overflow