是否可以使用gdb和嵌套的qemu虚拟机同时调试linux用户空间程序和主机管理程序?

问题描述

我想调试在嵌套虚拟化环境中运行的用户应用程序。 因此,我构建了一个静态版本的QEMU并在KVM支持下运行它。 我将第一个由QEMU运行的VM称为主机VM,然后在主机VM内部运行另一个QEMU,并用来宾VM对其进行命名。最后,我可以在来宾VM内运行用户应用程序。 该环境可以正常工作,现在的问题是,如何调试这种环境,以及如何同时遵循用户应用程序和主机VM中的KVM中的控制流?

现在,我在kvm中使用build而不是kvm模块,并使用gdb附加主机VM。在添加符号文件[用户可运行的二进制文件]并通过'hb main'设置硬件断点后,控制流可以正确停止在用户应用程序的main函数中,但是gdb无法从任何虚拟地址读取任何数据并仅返回味精如下:

(gdb) x main                                                                                                                                                                      
0x404091 <main>:        Cannot access memory at address 0x404091

任何人都可以提出有关如何解决错误的建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)