在QEMU中专门终止进程

时间:2015-06-02 09:41:42

标签: intel qemu

示例代码:

  int main () {

      printf("Hello world begin\n");

      // New instruction
      __asm__ __volatile__ (".byte 0x0f\n\t"
                            ".byte 0xd0\n\t"
                            :);

      printf("Hello world end\n");

      return 0;
  }

我的问题[TLDR]

让QEMU对待我的新指令类似于返回0; [sys_exit]

我的目的

我正在尝试自定义x86 ISA的QEMU仿真,以在两点之间的CPU仿真期间记录一些数据(如环转换次数等)。假设为简单起见,启动将在第一个printf(或某个系统调用)之后,并且将由我编写的新指令(例如操作码' 0f d0'在Intel ISA中未使用)标记,其中目的是简单地打印那些日志信息并在那里终止进程(在第2行)并且不执行其余的行。换句话说,行为应该与'返回0的情况相同;' 紧接在我的新指令之后。

在我的QEMU帮助器逻辑中,我尝试添加 cpu_loop_exit()和所有其他组合,它们似乎无限循环。任何人都可以指出我如何实现我想要的行为(只修改QEMU而不是我的示例代码)?

0 个答案:

没有答案