使用GDB跟踪虚拟机管理程序中的来宾OS,整个运行在Qemu上-KVM

时间:2019-04-02 18:11:44

标签: gdb breakpoints qemu gdbserver hypervisor

我使用Gdb跟踪Qemu中虚拟机管理程序OS的执行(断点,单步执行...),到目前为止,它运行良好。

> special_function(df, "NewVariableName", "a", "b", "c")
  NewVariableName
1             3.0
2             0.2
3             0.5

现在,我需要跟踪虚拟机管理程序中来宾OS的执行情况,这些都由Qemu运行。而且它不起作用。 但是我添加了与操作系统有关的调试符号文件,并且还修改了指令的体系结构。

qemu-system-x86_64 -enable-kvm -display sdl -cpu host -serial my: stdio -m 8192 --bios ../../tool/boot/tianocore.bin -drive format = raw, file = var / run /hypervisor.img -machine q35 -s -S
gdb path/to/hypervisor
target remote: 1234

但是,当执行通过vmresume,vmlauch指令并继续在客户机OS中执行时,Gdb会感到困惑,单步执行不再有效,并且断点最终到达不确定的地址。
有谁知道我错过了什么?
还是真的不可能?
还有另一种方法可以实现这一目标吗?
我正在使用的管理程序是Genode,来宾操作系统是T inycore Linux


  1. munich是用于引导Tinycore Linux的32位Bootloader。
  2. 超级管理程序,vmlinux和munich是使用调试符号编译的二进制文件。

0 个答案:

没有答案