[转]VC 2008 远程调试

驱动开发过程中,一般使用VMWare/Virtual PC + WinDbg进行联机调试。有时会遇到这样的情况:需要编写一个用户态的应用程序与内核模式驱动进行交互。由于开发好的驱动程序已经在远程测试机(VMWare虚拟系统)中进行部署,因此最好能将用户态的应用程序也部署到远程的测试环境中,这样便可以同时调试应用程序与驱动程序。

VC 2008 IDE自带了很强大的用户模式调试器,并且支持远程调试功能。再进行远程调试之前,需要做以下的准备。

一、远程测试环境的配置

将“Program Files/Microsoft Visual Studio 9.0/Common7/IDE/Remote Debugger/x86”下的所有文件复制到远程计算机中。
将开发好的应用程序(.exe文件)和符号文件(.pdb文件)复制到远程计算机中。
在远程计算机上启动“msvsmon.exe”,并将“工具”->“选项...”的“身份验证模式”改为“无身份验证(仅限本级)”,并勾选“允许任何用户进行调试”。
二、本地开发环境设置

项目属性中对调试选项进行配置,如下图所示。注意图中“远程命令”与“工作目录”是指远程计算机中的目录。

 


按F5即可对远程应用程序进行调试。
三、其他问题

测试环境缺少运行库时,可以安装随VC2008带的发行工具vcredist_x86.exe,详细说明见MSDN中的“ 部署示例”。
若VC 2008调试器中无法设置断点,在项目属性的“C/C++”->“优化”设置为“禁用(/Od)”,详细参考见 这里。对于驱动可以参考windbg安装目录中kernel_debugging_tutorial.doc所述的方法:

Here is something fairly important to understand. The build process is quite smart about optimizing code, and optimization can result in code movement (logic is of course preserved) and in keeping variable values solely in registers. To ensure a straightforward debugging experience, you should produce a checked build with this compiler directive given in the build window or in the appropriate sources file:

MSC_OPTIMIZATION=/Od

(That is “Oh d” and not “zero d.”)

Sometimes the above will result in a build problem with intrinsic functions like memcmp. If you run into that problem, try:

MSC_OPTIMIZATION=/Odi

本文所提供的方法只适合调试本机(Native)代码,托管代码不在此例。更详细的配置参考 这里
MSDN中讲述的“ 调试本机代码”。

P.S  无调试,不程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值