主题:为何debug时一切正常,而release时就stack overflow呢
youyou0507
[专家分:90] 发布于 2011-03-21 19:26:00
如题,使用debug编译模式时,能计算,但用release时就stack overflow,请较为啥会这样,如何解决?
回复列表 (共9个回复)
沙发
yeg001 [专家分:14390] 发布于 2011-03-21 22:59:00
因为你只设置了debug的stack size, 没有设置release的stack size.
板凳
臭石头雪球 [专家分:23030] 发布于 2011-03-22 08:37:00
这个问题不好说。如果你也Debug和Release设置了同样的Stack大小,或者都用的默认大小,也可能是你的代码里有隐含的错误。但这个错误我也不太好说是什么。
3 楼
youyou0507 [专家分:90] 发布于 2011-03-23 17:55:00
设置了debug和release的stack size为同样大小,release仍然不行。隐含的错误一般由什么原因引起的呢?
4 楼
yeg001 [专家分:14390] 发布于 2011-03-23 19:39:00
那有没有设置release更大一点? 如果是代码原因引起的话你就要慢慢调了. 因为啥信息都没了.
5 楼
臭石头雪球 [专家分:23030] 发布于 2011-03-23 21:52:00
如楼上所言,这个隐含的错误很难一言说清楚,说实话,让我碰到,我也很头疼
6 楼
lqmj [专家分:40] 发布于 2011-04-05 19:54:00
我遇到用DEBUG和 RELEASE计算的结果不一样,两个都不正常,好像fortran计算好玄乎啊,不懂错从何出
7 楼
lqmj [专家分:40] 发布于 2011-04-05 20:30:00
用DEBUG模式能算一结果,但用RELEASE 模式显示RUN TIME ERROR,郁闷啊
8 楼
yeg001 [专家分:14390] 发布于 2011-04-05 22:51:00
楼主, 你没有认真调试. 按你这样, 用C写一样会有run time error. fortran编译器我只试过用openmp并行的时候碰到过bug.
9 楼
dongyuanxun [专家分:7180] 发布于 2011-04-06 00:03:00
如果你能保证全部变量初始化了,算法转换成代码完全正确,并且该算法确实可靠,代码也没隐含问题,那么就可以确定是编译器bug了。
我来回复