小明思考

高性能服务器端计算
posts - 70, comments - 428, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

远程调试技术-使用vs2005

Posted on 2008-07-28 15:20 小明 阅读(7380) 评论(3)  编辑 收藏 引用 所属分类: ToolsDebug

1 什么是远程调试技术
    顾名思义,就是要调试的程序和调试器本身并不在一台机器上。由于虚拟机技术的盛行,在虚拟机里面运行待调试的程序,而在外面运行调试器,也是一种比较流行的做法。



2 为什么使用远程调试
   远程调试有如下好处:
    a. 能让产品运行在一个比较干净的环境。有的时候如果产品安装在一个装好集成环境的机器上,某些bug并不能显示出来。
    b. 易于部署调试环境。很多产品都非常复杂,比如很多都以service方式运行或者要load很复杂的resource,想在调试器里面直接按F5运行,越来越难。
    c. 对于游戏等全屏方式运行的程序,尤其有用。以前我对调试directx程序非常头疼。

3 怎样使用远程调试
   使用vs2005进行远程调试,详细的介绍参考:http://support.microsoft.com/kb/910448

   简单的来说,
   1)在被调试的机器上面运行Msvsmon.exe
   2)在调试机器上面运行vs2005,并attach到远程机器的某个进程

4 注意事项

   a. 设置好正确的权限
   被调试机器和调试机器需要互相信任的权限(two-way)。如果两台机器在同一个workgroup,让两台机器拥有一个相同的账号和密码,然后以这个账号运行。如果两台机器在一个域里面,比较简单,Msvsmon可以设置权限。如果一台机器在domain里面,另外一台不在,同样是让两台机器拥有一个相同的账号和密码,然后以这个账号运行。
   对于Windows XP要特别注意一下,设置匿名的访问权限才可以work , http://support.microsoft.com/kb/908099

   b.设置好symbol
   什么,你不知道什么是symbol?简单的来说,symbol file(*.pdb) is for source-level debugging. VS2005就是靠它来调试exe的。默认情况下debug版本生成的,而release版本不生成pdb.设置好 [Project proerties]-[C/C++]-[Debug Information Format]-Program Database就可以了。
   为了减少symbol方面的麻烦,最简单的做法是让被调试机器上的binary版本和本地compile出来保持一致。
   



  

Feedback

# re: 远程调试技术-使用vs2005  回复  更多评论   

2008-07-29 22:09 by 梦在天涯
好东东!

# re: 远程调试技术-使用vs2005  回复  更多评论   

2008-09-25 17:32 by xinerzhui
您好,请教一个问题:
如何在远程调试中,在被调试的程序中设置的断点能在调试器上有所反应,能跟断点。谢谢!

# re: 远程调试技术-使用vs2005  回复  更多评论   

2009-04-23 17:06 by 0101
就这?太简略了吧.

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理