社区
C++ 语言
帖子详情
为什么DEBUG版本正确,Release版本错误?
ocean1004
2008-09-12 01:39:36
是一个自己写的数据排序,在验证的时候,debug下验证通过, release下验证错误。
查了下网上一些资料,说可能内存没正确处理,检查了下自己的程序,没发现内存问题。
除了内存问题之外,还可能有其他问题吗?
宏定义好像也没问题。
代码量挺大,贴不上来。
还有什么可能的情况?望高手帮帮忙
...全文
1402
22
打赏
收藏
为什么DEBUG版本正确,Release版本错误?
是一个自己写的数据排序,在验证的时候,debug下验证通过, release下验证错误。 查了下网上一些资料,说可能内存没正确处理,检查了下自己的程序,没发现内存问题。 除了内存问题之外,还可能有其他问题吗? 宏定义好像也没问题。 代码量挺大,贴不上来。 还有什么可能的情况?望高手帮帮忙
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhuwanglove
2008-09-14
打赏
举报
回复
函数参数传递
zhuwanglove
2008-09-14
打赏
举报
回复
1楼很全了,以前也出现过这种情况,release下也可以调试的,先调试一下,重点注意函数传递是否正确,学习了.
xiaobukuai
2008-09-13
打赏
举报
回复
debug版本和release版本的区别,学习了
野男孩
2008-09-13
打赏
举报
回复
en,运行库提供的内存调试机制。
[Quote=引用 16 楼 kkk215215 的回复:]
我以前也遇到过这种情况~
我是因为内存没有申请到位,出现的错误。在DEBUG模式下,即使你申请的空间小了,但DEBUG会自动将你补齐。但RELEASE模式就是严格按照大小来的,一般出现这种问题首先查看内存的申请部分代码,或者在你认为会出错的地方,加上一些AfxMessageBox,还可以在“运行”中打开eventvwr.msc来看看。
[/Quote]
f22fbi
2008-09-12
打赏
举报
回复
mark
双子东宝
2008-09-12
打赏
举报
回复
1楼强,
学习先
kkk215215
2008-09-12
打赏
举报
回复
我以前也遇到过这种情况~
我是因为内存没有申请到位,出现的错误。在DEBUG模式下,即使你申请的空间小了,但DEBUG会自动将你补齐。但RELEASE模式就是严格按照大小来的,一般出现这种问题首先查看内存的申请部分代码,或者在你认为会出错的地方,加上一些AfxMessageBox,还可以在“运行”中打开eventvwr.msc来看看。
aayy
2008-09-12
打赏
举报
回复
mark一下
superyys
2008-09-12
打赏
举报
回复
关掉优化,
对可能在线程或中断中被更改的变量用volatile修饰
帅得不敢出门
2008-09-12
打赏
举报
回复
[Quote=引用 10 楼 ocean1004 的回复:]
搞定了。。。。
自己的问题,不过也发现了Release和Debug的不同~~~~~~~~~~
很爽的一件事情~~~~~~~~~~~~~
[/Quote]
什么原因 怎么解决 楼主要讲讲.
ocean1004
2008-09-12
打赏
举报
回复
分不够~~~~~~~~~~
明天加点分再结贴~~~~~~~~~~~~
killercat
2008-09-12
打赏
举报
回复
可能是 release 版本优化的原因。
ocean1004
2008-09-12
打赏
举报
回复
搞定了。。。。
自己的问题,不过也发现了Release和Debug的不同~~~~~~~~~~
很爽的一件事情~~~~~~~~~~~~~
h13077395959
2008-09-12
打赏
举报
回复
回帖是一种美德!
^_^
kingstarer
2008-09-12
打赏
举报
回复
还有一种情况是越界访问造成堆栈错误,在debug下可能没事,但在release下由于寻址方式改变,就会出错
wjkgz
2008-09-12
打赏
举报
回复
1。在debug下一些变量没有初始化默认为0,release下面则没有。
比如 int n; debug下n为0,release下n不为0
int * p; 如果你没有再赋值,
if( p != NULL ),在debug下不成立,在release下就成立了。看看你是否有这样的没有初始化的地方。
2。在release的编译选项里面加上调试信息,调试一下看看哪里出错了。
信念
2008-09-12
打赏
举报
回复
DEBUG版本:程序中每个变量会有多余的空间存放调试信息,这些多余的空间会在RELEASE版的时候收回。
如果程序中在NEW一块内存时不是足够大,但刚好没有超过存放调试信息的大小,那样在DEBUG版运行是没有问题的,但RELEASE时会造成一些未知错误
tengye19840704
2008-09-12
打赏
举报
回复
project - > setting > c/c++ 这里有一些设置...你看好左面..有选择是DEBUG的时候还是RELEASE的时候,看看是不是RELEASE的时候有什么不对的地方...
哦对了..我说的是VC6.0...
K行天下
2008-09-12
打赏
举报
回复
原因很多,百度一下
wudeshou82666
2008-09-12
打赏
举报
回复
楼上很全啊
学习下
加载更多回复(2)
Debug
版本
和
Release
版本
区别及
ReLease
版调试
一.
Debug
版本
和
Release
版本
区别
Debug
通常称为调试
版本
,它包含调试信息,并且不作任何优化,便于程序员调试程序。
Release
称为发布
版本
,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便...
蠢哭了,
debug
版本
可用
release
版本
出错
win10 vs2015 MFC编写的一个动态库dll工程,
debug
版本
release
版本
编译都通过。但是运行时
debug
版本
可用
release
版本
出错。 具体现象为中文乱码,且点击其他操作后就退出了。 问题原因
debug
版生成的dll库目录...
关于vs程序
debug
版本
和
release
版本
运行结果不一致
最近遇到
debug
版本
和
release
版本
运行结果不一致的问题,记录一下查询的资料以及自己的解决方法。 1.原因分析 造成这种结果的原因通常是自己的代码不
正确
,一般是以下两种原因造成: (1)对变量的初始化不一致或...
Debug
与
Release
版本
的区别详解
Debug
和
Release
并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把
Debug
...
Debug
版本
包括调试信息,所以要比
Release
版本
大很多(可...
CUDA归约求和
Debug
版本
结果与
Release
版本
不同的解决方法
近日,在写一个CUDA项目时,里面有一个核函数是要求均值,所以采用归约求和算法,然后再去除以总数求得平均值,在
Debug
调试
版本
下,数据正常,但当在
Release
版本
下时,数据却出现了
错误
。找了很久的
错误
,最后发现是...
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章