visual studio 2010远程调试.NET代码实践
本地主机:visual studio 2010 + win7 64 bit
远程主机: window server 2008 R2 64 bit + visual studio 2010 remote debugger (64bit)
1. 原理
远程主机运行 visual studio 2010 remote debugger, 该程序作为调试服务程序监听调试客户端的请求
本地主机选择项目代码,选择主菜单debug->attach process, 选择远程主机,列出远程主机所有进行的进程,找到要调试的进程attach,这个过程即为本地调试器向远程
主机的调试服务程序建立双向连接,连接成功后即可设置断点,进行调试
2. 原理很简单,实践很坑爹
(1) 若本地主机和远程主机没有域之类的关系,则必须要在本地和远程都有相同的管理员账号和密码
(2) 用该管理员账号登陆远程主机, 以管理员身份运行调试器,若调试32位的则运行32的调试器
(3) 用同样管理员账号,在本地主机打开visual studio 2010, 选择要调试的project, 主菜单debug->attach to process,在弹出的对话框中,选择qualifier,选择后找到远程主机,即显示出远程主机的进程,选择调试的process, attach
FAQ:
在attach to process后选择远程主机,提示登录失败,确认账号密码是否一样,可以尝试用net use命令测试,注意qualifier显示的都是主机名而非IP名,net use要用主机名测试
在attach to process时提示无法调试32位,需要运行32位debugger, 是远程主机需要运行32位(x86)调试器
在attach to process时visual studio 2010提示 no symobol not founded, 在debug->options里设置symbol的路径,这个symbol路径应该在远程主机process的pdb文件所在目录
笔者在实践中磕磕碰碰了大半天才弄通,希望能让其他人少走弯路,远程调试还是很强大,不用在本地部署就可以直接调试,很适合对运行环境依赖较大的情况以及团队开发。