WinDbg 支持远程调试,支持协议:命名管道 (NPIPE)、TCP、COM 端口、安全管道 (SPIPE) 和安全套接字层 (SSL)。
如今绝大多数只会用到 COM 和 TCP 通信。走 COM 协议一般是用来调试系统内核,而应用层软件调试基本就是用 TCP。
用 WinDbg.exe 建立服务器
启动调试服务器
1
| windbg.exe -server tcp:port=5000
|
连接调试服务器
1
| windbg.exe -remote tcp:server=192.168.175.134,port=5000
|
- 通过 WinDbg 图形界面操作
按下Ctrl + R打开Connect to Remote Debugger Session窗口并输入调试服务器地址:

输入服务器地址:
1
| tcp:server=192.168.175.134,port=5000
|
用 dbgsrv.exe 建立调试服务器
与 windbg 作为调试服务器的区别是无界面,全程在客户端即可操作。但是要求双方的 windbg 版本一致,否则附加进程列表显示为空。
通过命令行参数启动服务器:
1
| dbgsrv.exe -t tcp:port=5000
|
连接服务器
1
| windbg.exe -premote tcp:server=192.168.175.134,port=5000
|
- 通过 WinDbg 图形界面操作
打开File菜单,选择Connect to Remote Stub...。

输入服务器地址,和前面一样:
1
| tcp:server=192.168.175.134,port=5000
|
总结
windbg 和 dbgsrv 都可以作为调试服务器,但有些区别:
- windbg 会出现图形界面,双方均可输入调试命令并且操作是同步的。而 dbgsrv 仅在后台工作,调试完全在控制端进行。
- windbg 作为服务器时,符号文件缓存在被控端本地。而用 dbgsrv 时符号文件在控制端。
- windbg 作为服务器时,不要求双方 windbg 的版本一致。而用 dbgsrv 时则要求 windbg 版本一致,否则无法附加程序。
相关阅读
激活调试服务器
WinDbg 命令行选项
DbgSrv 命令行选项
windbg调试命令