社区
ATL
帖子详情
Debug 版本出错 Release 版本运行正常是怎么回事?
saiyaman5
2007-12-13 02:48:03
我做了个COM组件(DLL封装)里面有对话框,如果调用了组件创建了对话框,在退出时,Debug版本出错,程序崩溃,而在Release下却没事.在Debug 版本下调试,能插入断点的地方都试过了,都没出现错误.正因为这样,我但心以后用这个组件的时候可能会出现不可预料的错误.大家对这种现象怎么看,或者指导一下如何调试.
...全文
417
14
打赏
收藏
Debug 版本出错 Release 版本运行正常是怎么回事?
我做了个COM组件(DLL封装)里面有对话框,如果调用了组件创建了对话框,在退出时,Debug版本出错,程序崩溃,而在Release下却没事.在Debug 版本下调试,能插入断点的地方都试过了,都没出现错误.正因为这样,我但心以后用这个组件的时候可能会出现不可预料的错误.大家对这种现象怎么看,或者指导一下如何调试.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
saiyaman5
2007-12-13
打赏
举报
回复
解决了!
五岭散人的方法,定位到了ASSERT(pMap->LookupPermanent(hWndOrig) == NULL)
原来我程序中用了CButton的派生类,忘了在析构的时候加上m_hWnd=NULL;
"还有在另一组件中,中途用OnOK退出了一个模态对话框,在Debug版本下也出错,Release下正常,Debug下调试一步步走也没出错,真是拿它没办法了."
同样的断言,不过这是多线程的问题,谢谢各位,又让我长进不少!
ouyh12345
2007-12-13
打赏
举报
回复
在ide中调试,崩溃时查看堆栈,就能定位了
注意,要以com工程为主工程
tcxjia
2007-12-13
打赏
举报
回复
和这个问题类似的
各位大哥也去看下我的贴,帮帮忙
http://topic.csdn.net/u/20071213/14/1aa1eaf1-f458-4fab-a3cd-4e14f347274b.html
tcxjia
2007-12-13
打赏
举报
回复
不知道有没有问题
不过至少可以试一试,成功之后就反复测试,看可靠不?
saiyaman5
2007-12-13
打赏
举报
回复
五岭散人高见,我觉得也是这样的问题,但不知道如何定位到错误的地方.
tcxjia,这样改会不会不妥呀?
Allen_zhang
2007-12-13
打赏
举报
回复
用断点查不出来
弹出类似于下面信息的错误消息框
Debug Assertion Failed!
......
For information on how your program can cause an assertion
failure,see the visual C++ documentation on asserts.
怎么解决?
这样的问题很明显是一些断言错误。弹出这个断言的时候按重试就可以定位到断言的位置
看看是不是ouyh12345说说的问题
一般是二次释放的问题。
出错的代码类似于:
ASSERT(m_pHwnd != NULL);
if (m_pHwnd == NULL)
return FALSE;
崩溃后可以继续运行的
再通过堆栈来找问题的触发地方
你这里有对话框之类的很有可能是对话框重复性的destroy了
tcxjia
2007-12-13
打赏
举报
回复
你可以看看你的debug连接库设置,然后将Unicode Debug、Release MinSize模式的编译
设成同样。
ouyh12345
2007-12-13
打赏
举报
回复
一般是二次释放的问题。
出错的代码类似于:
ASSERT(m_pHwnd != NULL);
if (m_pHwnd == NULL)
return FALSE;
崩溃后可以继续运行的
saiyaman5
2007-12-13
打赏
举报
回复
用断点查不出来
弹出类似于下面信息的错误消息框
Debug Assertion Failed!
......
For information on how your program can cause an assertion
failure,see the visual C++ documentation on asserts.
怎么解决?
tcxjia
2007-12-13
打赏
举报
回复
你和我的问题差不多,也有区别
刚浏览网叶看到的,记下Debug时候的设置,然后在Release下设置成和Debug一样看看
Allen_zhang
2007-12-13
打赏
举报
回复
出错是什么信息?是不是一些断言来的?
snowbirdfly
2007-12-13
打赏
举报
回复
因为在Release下面会对代码进行优化,你设置断点看看什么地方出错了?
slshelly
2007-12-13
打赏
举报
回复
一般这种情况我就build All Project.在查找错误
saiyaman5
2007-12-13
打赏
举报
回复
还有在另一组件中,中途用OnOK退出了一个模态对话框,在Debug版本下也出错,Release下正常,Debug下调试一步步走也没出错,真是拿它没办法了.
Debug
运行
正常,
Release
版本
不能正常
运行
的相关详解
引言 如果在您的开发过程中遇到了常见的错误,或许您的
Release
版本
不能正常
运行
而
Debug
版本
运行
无误,那么我推荐您阅读本文:因为并非如您想象的那样,
Release
版本
可以保证您的应用程序可以象
Debug
版本
一样
运行
。 如果您在开发阶段完成之后或者在开发进行一段时间之内从来没有进行过
Release
版本
测试,然而当您测试的时候却发现问题,那么请看我们的调试规则1: 规则1: 经常性
Qt
debug
版本
正常
release
版本
无法
运行
学习《Qt Creator快速入门》一书的第二章程序
运行
与发布时遇到了这个问题。一个很简单的helloworld,
debug
版本
可以
运行
,而
release
不行。 目标选择器切换到
release
,
运行
后,应用程序输出如下: 在工程目录中的
release
目录中
运行
exe文件(已经将qt\bin和mingw\bin加入了系统Path环境变量),出现下面的错误:
release
版本
成功,
debug
版本
失败,或者
debug
版本
成功,
release
版本
失败
请确定以下几点: 是否
debug
版本
的exe所用到的dll都是
debug
版本
的,如果dll写的质量比较高,通常可以通用,如果质量不高,就难说了,所以,
debug
版本
的exe最好是用
debug
版本
的dll; 如果可以获得程序的源代码,请重点检查使用assert的地方,这个语句中的内容,
release
版本
中就像没有一样,但是在
debug
下是要执行的,如果使用了与assert的特
蠢哭了,
debug
版本
可用
release
版本
出错
记录一下本人遇到的问题,可能不适用于各位。 win10 vs2015 MFC编写的一个动态库dll工程,
debug
版本
release
版本
编译都通过。但是
运行
时
debug
版本
可用
release
版本
出错
。 具体现象为中文乱码,且点击其他操作后就退出了。 问题原因
debug
版生成的dll库目录和
release
版本
生成的路径不同导致
release
版exe程序调用的是我之前修改的旧
版本
的...
Debug
运行
正常,
Release
版本
不能正常
运行
总结(转)
引言 如果在您的开发过程中遇到了常见的错误,或许您的
Release
版本
不能正常
运行
而
Debug
版本
运行
无误,那么我推荐您阅读本文:因为并非如您想象的那样,
Release
版本
可以保证您的应用程序可以象
Debug
版本
一样
运行
。 如果您在开发阶段完成之后或者在开发进行一段时间之内从来没有进行过
Release
版本
测试,然而当您测试的时候却发现问题,那么请看我们的调试规则1: 规则1: ...
ATL
3,248
社区成员
48,529
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章