使用主机在虚拟机中运行的调试代码

问题描述:

是否有调试器可以从虚拟机的主机中运行?使用主机在虚拟机中运行的调试代码

也就是说,我希望调试器能够识别虚拟机的操作系统例程,内存位置等,并识别操作系统何时启动certian EXE,而不是使用机器中的中断。然后我希望能够通过主机为每个进程设置硬件-类似的断点。我会澄清。虚拟化的计算机和操作系统永远不会知道断点是设置还是发生。所有调试处理将由模拟虚拟计算机的主机完成。

这将启用更强大的断点机制,例如“从CDROM驱动器读取特定数据时中断”,或“当磁盘上的某个文件包含以下字节序列时中断”。

这种方法也将消除anti-debugger技术,这些技术在调试器下运行时会改变可执行文件的行为。 (OTOH它开辟了一个反虚拟化技术的新领域,它依赖于仿真计算机和真实硬件之间的细微差别)。

有没有这样的产品?它看起来像个好主意吗?

IDA Pro的最新版本包括debugger interface,其中包括其他设置,可以检查BOCHS虚拟机。

VMware为Visual Studio和Eclipse提供了一段时间的VM调试插件。甚至可以记录虚拟机运行(记录来自所有设备的输入,允许与记录时一样精确重放虚拟机的执行),然后step through the recording with a debugger

+0

我希望我能接受两个答案。无论如何,谢谢。 – 2009-08-06 09:27:21