Re: [問題] debug and release mode

看板C_and_CPP (C/C++)作者 (我要加入劍道社!)時間18年前 (2006/05/30 23:39), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《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
推 debug mode 能跑是運氣好.
06/03 11:51, 1F
文章代碼(AID): #14V6SSv3 (C_and_CPP)
文章代碼(AID): #14V6SSv3 (C_and_CPP)