开发环境:用A表示,指安装了Visual Studio 2010的机子。
远程环境:用B表示,指需要被调试的进程运行的的机子。
B机上设置:
安装Remote Debugger,分为X86版本和X64版本,可以在visual studio 2010的安装光盘的 /Remote Debugger 目录中找到。也可以到微软的官方网站下载。
A机上测VS版本要和B机上的Debugger版本匹配,否则将提示“找不到相应版本”。
安装完后使用设置向导,根据向导设置调试器。
从控制面板中找到“管理工具”—> “本地安全策略“,然后找到 “本地策略”—>"安全选项”,然后在右侧找到“网络访问:本地账户的共享和安全模式”,选中,设置为“经典:本地用户以自己的身份验证”。
启动调试器程序,此时窗口中提示:Msvsmon启动了名为“user@hostname”的新服务器 。
A机上设置:
将A上要调试程序exe、dll、pdb,复制到B机中;
在A机的VS中打开相应解决方案文件,打开“Debug-->Attach to process",在其中的限定符Qualifier中选则远程计算机,下面的进程列表会列出在远程计算机中运行的程序列表,选择到目录进程后,如果成功解决了上面的符号信息载入的问题,接下来就和本地调试没有区别了。
关键点:
1、B机Msvsmon选择无验证模式,那么A机以远程方式附加进程,但无法进行断点调试;
2、B机选择Windows验证方式,A机以默认值方式附加进程,那么A机和B机应该使用相同用户名和密码登录系统,也许可以让VS已B机的用户名运行;
3、对于C# Windows服务程序,一般是以Installer和类库Dll的方式部署的,这两者的pdb一定要更新到B机上。