[debug_master] 使用USB 3.0进行windbg调试
2018-04-07 12:05
465 查看
1. 名词约定
目标机(target):被调试机器主机(host):运行调试工具(windbg)的机器
2. 系统要求
1> USB 3.0调试线特殊定制的USB 3.0 AM-AM线缆,淘宝可以直接买到,链接: https://shop129099241.taobao.com
2> 操作系统
Windows 8 或 Windows Server 2012以上版本(主机,目标机)
3> 目标机
支持调试(参考”设置目标机”一节)的xHCI(usb 3.0)控制器
4> 主机
xHCI(usb 3.0)控制器
3. 设置目标机
1> 在目标机上运行UsbView2> 找出所有的xHCI Controller
3> 查找xHCI Controller下的Port,找到支持调试的端口
[Port10] Is Port User Connectable: yes Is Port Debug Capable: yes Companion Port Number: 1 Companion Hub Symbolic Link Name: ... Protocols Supported: USB 1.1: no USB 2.0: no USB 3.0: yes ConnectionStatus: NoDeviceConnected
需满足
UserConnectable == yes And DebugCapable == yes
4> [可跳过] 记录下此节点对应的xHCI Controller的BDF值(十进制)
Bus.Device.Function (in decimal): 0.20.0
5> 找出电脑上对应这个xHCI Controller的插口。用一个usb 3.0的u盘去试你电脑上的usb口,如果在usbview里显示插到了支持调试的口上,就可以了。
6> 管理员权限打开cmd,运行
bcdedit /debug on
bcdedit /dbgsettings usb targetname:TargetName
TargetName可任意指定,长度必须小于24个字符,只能包含-, _, 0-9, a-z, A-Z
7> [可跳过] 如果你的电脑上不止一个usb controller,额外输入
bcdedit /set "{dbgsettings}" busparams b.d.f
b.d.f为第4步中获得的数字,同样为十进制
在我们的例子里,
bcdedit /set "{dbgsettings}" busparams 0.20.0
8> 核对设置,可跳过
bcdedit /dbgsettings
bcdedit /enum
9> 重启
3. 设置主机
1> 使用usb调试线连接目标机和主机的usb 3.0接口。2> 检查主机系统是32位还是64位的,运行相应位宽的windbg。如果您是第一次设置,务必使用管理员权限。
3> 打开File菜单,选择Kernel Debug. 打开USB标签,输入你上面设置的TargetName,点击OK.
4> 如果是第一次,会自动安装驱动
5> 在主机的设备管理器里,会看到:
4. 故障排除
1> 尝试主机和目标机上不同的usb3.0 口2> 关闭主机xHCI Controller的省电模式
2.1> 打开设备管理器,按connection排序。找到xHCI Controller,右键,属性。电源管理标签,Allow the computer to turn off this device to save power的勾去掉。
2.2> 再找到xHCI Controller下面Root Hub的节点。右键,属性。电源管理标签,Allow the computer to turn off this device to save power的勾去掉(同上)。
3> 检查是否以管理员权限运行 windbg,32/64位是否选对。
[1] https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-usb-3-0-debug-cable-connection
相关文章推荐
- VMware实现单机使用WinDbg进行调试的方法
- Java使用Debug进行程序调试
- 使用windbg进行简单的debug c++代码
- 使用WinDBG进行双机内核调试
- 使用qt和cmakelists进行debug调试
- Sharepoint学习笔记—Debug&TroubleShooting--引入Windbg进行诊断和调试
- 使用webstorm进行javascript的Debug调试功能
- 8086汇编语言自学经验分享 使用debug跟踪程序,进行调试
- 使用adb无线连接手机进行开发和调试,适用于usb host/accessory设备调试
- 使用adb和USB连接的方式进行android设备调试
- 使用AIR Debug Launcher进行调试
- (译)使用WinDBG进行内核调试(Fundamentals)
- Ubuntu下使用adb和USB连接的方式进行android设备调试
- 通过USB连接到Android真机,在终端中配置adb工具,并使用adb工具对安卓手机进行调试
- Ubuntu下使用adb和USB连接的方式进行android设备调试
- 使用WinDbg调试USB Bus Driver之点滴随记
- 使用dbgsrv及windbg进行远程调试
- Unity3D使用USB进行安卓真机调试
- Sharepoint学习笔记—Debug&TroubleShooting--引入Windbg进行诊断和调试