- 预备知识
Visual Studio 2015远程调试的官方链接:https://msdn.microsoft.com/zh-cn/library/y7f5zaaa.aspx
被调试程序需要是Debug的程序(即使是C#程序也不例外),请确认被调试程序是x86的还是x64的。
被调试机器上的Remote Debugger的版本要和本机的VS的版本一致。
- 调试步骤
1. 在本机搜索"RemoteDebugger"文件夹,它一般处于路径"C:\Program Files(x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger"上。
2. 将"Remote Debugger"文件夹(打个压缩包)拷贝到被调试机器的任意目录下。
3. 如果要调试x86的程序,就运行"RemoteDebugger\x86\msvsmon.exe"程序。如果要调试x64的程序,就运行"RemoteDebugger\x64\msvsmon.exe"程序。微软说,x64目录下的"msvsmon.exe"程序既可以调试x86的程序,又可以调试x64的程序,结果我被坑了。我用VS2013调试时,用x64的EXE调试x86的程序时,attach失败,换成x86的就ok了。
4. 确定远程机器的上"msvsmon.exe"的要监听的端口。因为这台远程机器只开放了666端口,所以我让"msvsmon.exe"监听了666端口,如果机器没有限制的话,默认端口就行。
让"msvsmon.exe"监听666端口。
5. 启动本机的VS,编译出来Debug文件夹,将它(压缩后)放到目标机器。
6. 在目标机器上启动Debug下的exe(本例是"helloworld.exe"可执行程序)。
7. 在本机的VS下执行"Debug"->"Attach to Process..."。
8. 将VS的调试器附加到远程机器上的程序"helloworld"上。
然后attach到被调试程序上。
9. 在代码上打断点,在程序上进行一些操作,让它运行到断点上。这样就能查看断点处的信息了,当然也可以单步调试了。
单步调试
完。