虽然使用的版本是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. 工具->选项->调试->常规,将”要求源文件与原始版本完全匹配”的勾取消就可以了!
沒有留言:
張貼留言