在Windows主机中,我们可以使用WinDBG和串行端口通信来连接Windows内核,最简单的方法是使用VirtualKD。

现在的问题是,是否有可能使用MacOS主机和VMware Fusion做同一件事(VirtualKD / WinDBG替代品)?我可以使用GDB远程调试,也可以做主机到主机(VM到VM)的调试,甚至可以使用两个VM进行内核调试?

感谢

#1 楼

是的,您可以使用两个VM进行内核调试。您将需要连接其串行端口。

http://www.vmware.com/support/ws3/doc/ws32_devices3.html#1023828

以上内容适用于Windows。 OS X设置需要手动完成:http://www.dcl.hpi.uni-potsdam.de/research/WRK/2011/01/running-wrk-on-mac-os-with-vmware-fusion/index .html

在WinDbg / IDA端的连接字符串中,使用串行端口,而不是您通常使用的管道。

VirtualKD仅适用于在Windows主机,因此在这里无济于事。

始终可以进行GDB调试(使用debugStub.*设置)。好处是您不需要第二台VM,并且可以调试任何东西,包括BIOS和内核的任何部分。缺点是您没有WinDbg提供的漂亮的元信息,例如模块,进程和符号。

#2 楼

使用VMWare Fusion进行内核调试

在提升的命令提示符下打开目标VM的电源:和开发(调试器)VM。

导航到每个VM的.vmwarevm软件包,右键单击,选择“显示软件包内容”(或cd进入VM的软件包)。 serial0端口,用于无配置打印。复制并粘贴下面的配置,并在必要时进行修改。 />
VMWare Fusion开机顺序


术语:

客户端:您在此上运行windbg
服务器:您破坏了此内核上的内核


步骤:

首先启动服务器,因为它是管道“服务器”,并且必须创建管道。客户下一步。
启动windbg,并在com0上等待它。 />


Voila

评论


使用Windows 8.1作为服务器有任何经验吗?该解决方案适用于Windows 7,但无法使其与Windows 8.1 VM(融合)一起使用

–卡洛斯·加西亚(Carlos Garcia)
2015年6月4日19:18

没关系,配置问题。

–卡洛斯·加西亚(Carlos Garcia)
2015年6月5日,9:17

#3 楼

以我的经验,VirtualKD无法在此设置中工作。我试图让VisualDDK(相同的人并使用VirtualKD)在这种精确的设置下工作,但并不高兴。最后,我在Mac上安装了Bootcamp,以Windows 7为主机,VMWorkstation运行目标。一切正常,都是肉汁。