远程调试及调试子进程的方式
Visual Studio
远程调试
首先,需要在目标机器上安装remote debugger,可以从VS的安装目录中获取该软件。以VS2017为例,可以从以下目录找到remote debugger:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Remote Debugger
将整个文件夹拷贝到目标机器上.
需要注意的是,x86和x64指的是要调试的程序,而非当前系统的平台。所以被调试的程序如果是x86的则应该使用x86的remote debugger,反之亦然。
调试子进程
VS本身并没有任何办法调试子进程(截止到VS2017),但是VS2017有官方插件可以用来调试子进程。
https://marketplace.visualstudio.com/items?itemName=vsdbgplat.MicrosoftChildProcessDebuggingPowerTool
WinDbg
远程调试
可以参考MSDN的这篇文章:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/remode-debugging-using-windbg
使用示例:
1. 在目标机器和主机上安装WinDbg
2. 在目标机器(被调试机器)上启动想要调试的程序,然后执行以下命令
windbg -server tcp:port=5005 -p 1394
意思是使用tcp连接,调试端口设置为5005,调试的进程ID是1394
3. 在主机(调试机器)上执行以下命令
WinDBG.exe-remote tcp:server=dbgPC,port=5005
dbgPC为目标机器(被调试)机器的机器名
调试子进程
敲入以下命令
.childdbg 1
之后可以通过WinDbg的Process and Threads窗口(Alt + 9)来切换想要调试的进程