在virtio-balloon驱动程序上安装断点并监视驱动程序的行为

时间:2018-08-19 06:23:15

标签: linux gdb virtualization qemu kvm

我想要做的是在客户机VM的df <- mtcars %>% rename(mp2 = mpg) %V% assign(x = "r", 100, envir = environment()) %>% mutate(mpg2 = mp2 * r) mp2 cyl disp hp drat wt qsec vs am gear carb mpg2 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 2100 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 2100 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 2280 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 2140 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 1870 设备驱动程序上安装一个断点,并查看那里发生了什么。 问题是当我在某些功能(例如virtio-balloonvirtballoon_migratepage)上安装断点时,它永远不会触发。

我使用virtio_init如下创建磁盘映像

  

sudo debootstrap --include = openssh-server,curl,tar,gcc,libc6-dev,time,strace,sudo,less,psmisc,selinux-utils,policycoreutils,checkpolicy,selinux-policy-default wheezy wheezy

我使用的QEMU命令是

  

qemu-system-x86_64 [...] -device virtio-balloon -monitor unix:/tmp/monitor.sock,server,nowait-启用kvm

我的内核配置启用了virtio并禁用了KASLR

  

#CONFIG_RANDOMIZE_BASE未设置
  ...
  CONFIG_VIRTIO = y
  CONFIG_VIRTIO_BALLOON = y

然后,我将debootstrap附加到QEMU实例并安装了一个断点(gdb)。我可以看到有一堆virtio代码,看来断点已正确安装。但是我无法通过发送b virtioballoon_migratepage之类的命令来使用QEMU监视器来触发它。
QEMU监视器的输出如下

  

(qemu)信息提示框
  信息气球
  气球:实际= 1024
  (qemu)气球65536
  气球65536
  (qemu)信息提示框
  信息气球
  气球:actual = 1024

这里有几个问题:
1)如何检查virtio-balloon驱动程序工作正常?
2)如果运行良好,如何控制virtio-balloon驱动程序(通过使用QEMU Monitor,gdb,guest程序或任何其他程序)?
3)如果我做错了,哪一步错了?
4)主机上是否需要任何配置?

0 个答案:

没有答案