作者littleshan (我要加入剑道社!)
看板C_and_CPP
标题Re: [问题] debug and release mode
时间Tue May 30 23:59:21 2006
※ 引述《Amati (Amati)》之铭言:
: 请问一下各位前辈
: 在我写好的程式中用debug mode可以成功执行
: 但是当我切换到release mode时却会发生程式终止
: 而程式终止的原因应该是记忆体配置错误 就是阵列或指标over range那一种
^^^^^^^^^^^^^^
: 但是在debug mode下 我明明执行的很爽阿
debug mode 编出的程式可能保留了一些没用到的变数
成为非法记忆体存取的牺牲者
而 release mode 中这些变数会被去掉
因此乱动记忆体马上会让程式挂掉
当然也可能是其它原因
但可以确定的是
debug mode 能跑是你运气好
还有另一种情况是你不自觉地写出一些不能开 optimization 的程式码
像这样:
#include <iostream>
using namespace std;
int main()
{
float f = 0.0f;
*(int*)(&f) = 0x3F800000; // IEEE754 representation for 1.0f
cout << f << endl;
}
若用我的 compiler (gcc-4.0.3) 编
不开最佳化结果是 1
开最佳化结果是 0
当然这不是 gcc 的问题,而是 code 本身的问题 (原因请见 gcc 的 faq)
: 怎麽会这样呢
: 请了解的前辈帮我解答一下
: ps 我的程式是作数值计算 程式码不少
: 然後大部分的工作都是做系数的计算与解矩阵
: 用debug mode真的是很慢 非得用release不可
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.3.35
1F:推 frankyhcg:推 debug mode 能跑是运气好. 06/03 11:51