2016年7月22日 星期五

VS调试无法进入DLL中断点解决方法

虽然使用的版本是2015,但用次方法亦可以调式dll

转自:http://blog.csdn.net/srzhz/article/details/7033985


开发环境 :VS2005
应用情况: 开发的DLL在被调用进行调试时候,为跟踪DLL运行情况,而在DLL中设定的断点无效,不能进入DLL源码调试
经检查,项目下的DLL、LIB、.h都同步更新,排除了调用不同步的情况。
解决办法:
1.       进入DLL项目,在工程属性页中“Alt+F7”->“配置属性”->“C/C++”->“常规”->“调试信息格式”,选择“用于“编辑并继续”的程序数据库(/ZI)”。
2.       在“配置属性”->“链接器”->“调试”->“生成调试信息”中,选择“是”。
编译重新更新,运行,断点生效
其他可能情况收集:来源于http://blog.csdn.net/desow/archive/2009/11/20/4843556.aspx
3.       解决方案配置是 release ,直接F5调试就可以,VS会提示你“没有找到调试信息,要继续调试吗?”,选择“是”即可。
4.       检查工程所在路径是不是有中文,有VS不支持中文路径的可能(参照http://blog.csdn.net/red_hope/archive/2007/10/20/1833916.aspx的经验)。
5.       删掉.ncb和.opt,rebuild all。
6.       看是否有:“warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失”警告,把那个cpp文件用记事本打开,另存为unicode格式,再重新编译。(参照http://www.cppblog.com/qiujian5628/archive/2008/04/11/41806.html vs2005奇怪的断点无效问题)
7.       工具->选项->调试->常规,将”要求源文件与原始版本完全匹配”的勾取消就可以了!

沒有留言:

張貼留言