Debugging Tools for Windows |
本节讨论了一些Hyper-V调试时可能遇到的问题。
如果根分区启动时没有连接字符串,通常是由于电缆或者设置问题造成的。例如,可能会显示下面这样的输出:
Connected to Windows 6001 x64 target, ptr64 TRUE
Kernel Debugger connection established.
Symbol search path is: c:\mysymbols\
Executable search path is:
Loading symbols for fffff800`01602000 ntkrnlmp.exe -> ntkrnlmp.exe
ModLoad: fffff800`01602000 fffff800`01b17000 ntkrnlmp.exe
Windows Kernel Version 6001 MP (1 procs) Free x64
要定位该问题,可以通过在命令提示符键入bcdedit来查看根分区的配置,并且确认它们是否正确。
如果在开始调试Windows hypervisor之后重新启动vmdemux (虚拟机分离器(virtual machine demultiplexer)),必须包含
可以在命令提示符输入
如果已经设置了通过null-modem电缆的Hyper-V调试,并且已经将Kdhvcom.dll复制到了根分区,之后从另一个未安装该文件的分区启动目标机时,调试器可能会冻结。这时可以重起vmdemux。这个问题是由于未修改的分区不能处理多路交换(multiplexed traffic)。一般来说vmdemux 会在干净的关闭(clean shutdown)时关闭所有管道。但是,例如硬重起这样的不干净关闭(non-clean shutdown)是没有办法检测到的。