通过网线手动设置内核模式调试
- 主机和目标计算机可以在本地网络的任何位置。
- 从一台主机上调试多台目标计算机很容易。
- 网线价格便宜,而且很容易买到。
- 对于任何两台计算机,它们都有以太网适配器。它们都有串行端口或1394端口的可能性较小。
支持的网络适配器
主机可以使用任何网络适配器,但目标计算机必须使用Windows调试工具支持的网络适配器。
确定主机的IP地址
使用以下过程之一确定主机的IP地址。
-
在主机上,打开命令提示窗口并输入以下命令: ipconfig
记下要用于调试的网络适配器的IPv4地址。 - 在目标计算机上,打开命令提示窗口并输入以下命令,其中host name是主机名:ping -4 HostName
选择网络调试端口
设置目标计算机
1、验证目标计算机是否具有受支持的网络适配器。
2、使用标准的Cat5或更好的网线将支持的适配器连接到网络集线器或交换机。不要使用交叉电缆,也不要在集线器或交换机中使用交叉端口。
3、在提升的命令提示窗口中,输入以下命令,其中w.x.y.z是主机的IP地址,n是您选择的端口号:
bcdedit /debug on bcdedit /dbgsettings net hostip:w.x.y.z port:n
4、bcdedit 将显示自动生成的密钥。复制密钥并将其存储在可移动存储设备(如USB闪存驱动器)上。在主机上启动调试会话时,需要密钥。强烈建议您使用自动生成的密钥。但是,您可以创建自己的密钥,如后面“创建自己的密钥”部分中所述。
5、如果目标计算机中有多个网络适配器,请使用设备管理器确定要用于调试的适配器的PCI总线、设备和函数号。然后在提升的命令提示窗口中,输入以下命令,其中b、d和f是适配器的总线号、设备号和功能号:
bcdedit /set "{dbgsettings}" busparams b.d.f
6、重启计算机
如果目标计算机位于扩展底座中,并且已为扩展底座中的网络适配器启用网络调试,请不要从扩展底座中删除计算机。如果需要从扩展底座中删除目标计算机,请先禁用内核调试。要在目标计算机上禁用内核调试,请以管理员身份打开命令提示窗口,然后输入命令bcdedit/debug off。重新启动目标计算机。
设置主机
使用标准Cat5(或更高级别)网线将主机的网络适配器连接到网络集线器或交换机。不要使用交叉电缆,也不要在集线器或交换机中使用交叉端口。
启动调试会话
windbg -k net:port=n,key=Key
如果系统提示您允许windbg通过防火墙访问端口,则允许windbg访问所有不同网络类型的端口。首次尝试建立网络调试连接时,可能会提示您允许调试应用程序(windbg或kd)通过防火墙访问。Windows的客户端版本显示提示,但Windows的服务器版本不显示提示。您应该通过选中域、私有和公共三种网络类型的复选框来响应提示。如果没有得到提示,或者在提示可用时没有选中复选框,则必须使用“控制面板”允许通过防火墙进行访问。打开“控制面板>系统和安全”,然后单击“允许应用程序通过Windows防火墙”。在应用程序列表中,找到Windows GUI符号调试器和Windows内核调试器。使用复选框允许这两个应用程序通过防火墙。重新启动调试应用程序(windbg或kd)。