ARM虚拟机监控程序:执行单个指令和陷阱(相当于Intel的MTF)

ARM虚拟机监控程序:执行单个指令和陷阱(相当于Intel的MTF),arm,hypervisor,assembly-trap,Arm,Hypervisor,Assembly Trap,我正在ARM上实现一个虚拟机监控程序,我需要知道是否有办法在执行一条指令后恢复(ERET)来宾和陷阱,而不依赖于调试体系结构(v7.1)。我可以使用软件方法,将来宾的下一条指令修改为HVC(相当于英特尔上的VMCALL),但我不知道如何处理导致分支的指令(JMP) 在英特尔上,我可以使用陷阱标志(RFLAGS中的TF位,每个操作系统线程上下文)或监视器陷阱标志(=MTF,VT-x功能) 多谢各位 编辑:澄清 我希望(尽可能)避免反汇编/仿真 如果您有一个虚拟机监控程序,那么您也应该有调试程序。

我正在ARM上实现一个虚拟机监控程序,我需要知道是否有办法在执行一条指令后恢复(ERET)来宾和陷阱,而不依赖于调试体系结构(v7.1)。我可以使用软件方法,将来宾的下一条指令修改为HVC(相当于英特尔上的VMCALL),但我不知道如何处理导致分支的指令(JMP

在英特尔上,我可以使用陷阱标志(RFLAGS中的TF位,每个操作系统线程上下文)或监视器陷阱标志(=MTFVT-x功能)

多谢各位

编辑:澄清

  • 我希望(尽可能)避免反汇编/仿真

如果您有一个虚拟机监控程序,那么您也应该有调试程序。为什么不想使用它?将两条
HVC
指令放在分支指令之后,一条放在分支目标上?@IgorSkochinsky,因为这意味着虚拟机监控程序代码的复杂性;即:1。CPU必须暂时处于调试状态(性能问题?)2。如果我捕获调试异常,我还必须捕获CP14读/写、调试ROM访问、调试操作系统相关的寄存器访问,因此我也必须模拟这些异常(这里还有性能问题)…@tangrs我希望避免对来宾代码的反汇编/模拟