我想要做的是在来宾VM中的 virtio-balloon 设备驱动程序上安装断点,并查看那里发生的事情 . 问题是当我在某些函数上安装断点时(例如, virtballoon_migratepagevirtio_init ),它永远不会被触发 .

我使用 debootstrap 创建了一个磁盘映像,如下所示

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-enable-kvm

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

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

然后我将 gdb 附加到QEMU实例并安装了断点( b virtioballoon_migratepage ) . 我可以看到有一堆virtio代码,似乎断点安装正确 . 但我无法通过发送像 balloon 65536 这样的命令使用QEMU监视器来触发它 .
QEMU监视器的输出如下

(qemu)信息气球信息气球气球:实际= 1024(qemu)气球65536气球65536(qemu)信息气球信息气球气球:实际= 1024

这里有几个问题:
1)如何检查virtio-balloon驱动程序是否运行良好?
2)如果它运行良好,我如何控制virtio-balloon驱动程序(通过使用QEMU监视器,gdb,客户程序,或其他任何东西)?
3)如果我做错了什么,哪一步错了?
4)主机上是否需要配置?