Re: [問題] debug and release mode
※ 引述《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
推
06/03 11:51, , 1F
06/03 11:51, 1F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章