C++中debug和release的区别? 为什么debug没问题的程序release之后就出问题了?

 我来答
cdyzxy
2013-01-28 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3568万
展开全部
我经验:release采用的优化策略与Debug不同造成出问题的情况多些,实际上,这两种编译的参数是人工可配置的,完全可配置得一样来测试。
遇到题目中情况时,先将Release版中优化部分暂时去掉,看是否优化会引起问题,比如,你程序中给通讯或某些低速设备初始化时采用的是自己写的循环计算方式实现的,那么就有可能受优化的影响,原先运行1毫秒的循环优化后只运行500微秒了;还有就是,对于工程中每个程序在编译时可以选用不同的优化策略,可以将需要进行速度优化的程序单独分出来,设置只针对这些程序进行优化,其他的可以排除优化带来的干扰;最后,Debug版程序因为程序中有一大堆调试信息,对错误的冗余也大些,那些将将越界访问的"野指针"也许不会引起问题,这时将程序部分设置成release的优化后再调试可以将问题点逐渐找出来。
gavineaglechou
2013-01-28 · TA获得超过157个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:130万
展开全部
debug生成的程序会有很多调试信息,release的程序相比debug要小很多,如果你的release版本出现不能运行的情况,可能的原因是库少了,还有可能是你代码的问题,检查一下哪里有内存泄漏的地方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_whales
2013-01-28 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:483万
展开全部
有很大区别。debug会加入很多保护措施,比如数组越界预防未初始化数值,赋值为CC等等release则不会;
debug几乎不进行优化,release则尽可能优化,有些优化的结果不是你想要的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式