VS2005 vs2008 vs2010 调试时打不了断点总结

               

VS编程调试时,偶尔会遇到打不了断点的情况,根据一路下来的经验,总结一下,以免以后遇到这种情况可以再参考下。(注:此文章相当于自己的学习笔记,以供自己今后参考,希望不要给各位带来坏的示范,有错误请多指正)

本文截图使用的VS软件为VS2005,vs2008 2010等类同


1、先确定不是低级原因造成的打不了断点(如某一文件代码漏编译等情况,则此文件打不了断点)


2、若一开始时可调试,但改动一点代码后不能打断点调试,则:

工具->选项->调试下的“要求源文件与原始版本完全匹配“的钩去掉即可打断点了(也可能从别人那里拷过来或者网上下载的代码,代码中某些字符(汉字等)乱码时,也可以用此方法解决乱码的问题,若不用此方法,则将代码保存为不乱码的格式,则又可以打断点了)





3、若解决方案配置为Release模式,则需要进行相应的设置。

 解决方案配置可在此处看到:



更改此配置在:生成->配置管理器      里面



为Release模式需要进行以下几个步骤的设置

      (1)、选中工程,右击,点击属性,得到如下页面,将调试信息格式改成如图所示或者”用于“编辑并继续”的程序数据库(/ZI)“皆可。

除”禁用“外的另外两种格式(C7兼容等)不知道是否也可以?



    (2)、接着上面的窗口,将  优化  选项设置为禁用(保证被编译到的所有代码可以打断点,否则有可能同一文件中,有部分代码不能打断点)




    (3)、按照下图将生成调试信息设置成  是(/DEBUG)




完成以上几个步骤的设置基本上可以解决打不了断点的情况了

需要注意的是,设置完成后需要  点击 "重新生成解决方案" 或者删除先前生成的pdb文件点击"生成解决方案即可"

4、若使用的是COM组件,则重新生成的DLL需要重新注册com,否则也打不了断点

5、若要调试动态库(静态库?),则有多种方法:

    1)、将要调试的dll工程和exe工程放在同一个解决方案下,直接单步调试即可进入相应函数

    2)、在要调试的函数中MessageBox,待弹出对话框后,附加到相应的exe程序即可

    3)、工程右键->属性->配置属性->调试->命令参数,填上调用此dll的exe全路径名(如D:\a.exe),打上断点,F5运行即可

    4)   、若dll/lib跟exe不在同一个工程也是可以调试的,只要保证lib/dll生成时间是最近的(具体时间要问微软了),如果发现调试

               进不去库里面的代码,而库代码未曾改过,则可以重新生成下库,一般就可以进去了


           

猜你喜欢

转载自blog.csdn.net/qq_44949789/article/details/89437753