本帖最后由 BeneficialWeb 于 2021-1-24 13:43 编辑
平台
-
host: Windows 10 20H2 x64
-
target: Windows 10 2004 x64
工具
Windbg Preview
USB3.0 U盘一个
USB3.0 DEBUG CABLE 线一根(某宝上有卖)
要求
双机均需要支持USB3.0可调试 的端口
正文:
首先使用Windbg调试器目录下的usbview.exe查看符合USB XHCI 的主机控制器下的端口。
可以看到,这里端口有点多。实际上我电脑上可用的usb接口,就只有3个。那么如何确定哪个端口是usb3.0接口并且支持调试呢。
这里可以通过插入一个usb3.0的U盘来确认端口,以及确认电脑哪个usb接口对应着哪个端口。
由上图圈出的部分,可以知道该14号端口支持调试,且协议是3.0的。
两台机器都确认要求无误后再进行下一步操作。
打开设备管理器,找到通用串行总线控制器下的USB根集线器(USB3.0), 然后右键属性,如果有电源管理选项卡,请打开该选项卡,并清除“允许计算机关闭此设备以节约电源(A)”复选框,然后点击确认。
以上操作两台机器均需要进行,下面的内容则分host和target。
target端:
管理员运行cmd.exe,依次输入以下命令
bcdedit /debug ON
bcdedit /bootdebug ON
bcdedit /dbgsettings usb targetname:KernelTest
host端:
管理员运行windbg preview,因为第一次建立调试环境Windbg需要为一个设备安装驱动。
接下来选择附加到内核,然后使用USB调试,输入上面命令中给入的targetname的名字,我起的名字是KernelTest, 点击OK,调试器进入等待连接。
建立连接
接下来将usb调试线分别连接到host和target机器的支持调试的usb3.0接口上。
然后重启target机器。如果顺利就会连接上。不顺利的话,可能会出现以下情况,在设备管理器中,发现USB Debug Connection Device设备有个黄色感叹号,且设备状态里提示驱动为签名,那么请按下win键,然后选择电源,按住shitf键,选择重启host机器,禁用驱动签名。
重新打开windbg preview,然后就成功断下了。
其他问题
- 如果中途windbg断开了,建议host端搞个纯净的系统试试,先排除其他软件的影响。
- 如果是断下来了,进入登录界面就断开了连接,查找下target端是否有什么软件影响,可在启动界面前,windbg断下,等待一段时间,看看是不是也会自动断开。一步步的查,服务包括驱动,如果有可疑的,需要禁用试试。
- 如果你的系统中有多个usb controller(一般只有一个),则需要你指定当前调试用的usb Controller 命令如下
bcdedit /SET "{dbgsettings}" busparams b.d.f
b d f 是PCI配置信息中的bus, device, function简写,可以在usbview查看xCHI节点的信息获取到Bus.Device.Function (in decimal): 0.20.0
|