回覆列表
-
1 # 自行輪迴
-
2 # 浪跡天涯16384
debug編譯為了方便debug,編譯時會加入很多overhead,所以你才可以斷點。而release是最終完成版,系統不會加相關程式碼。所以你這個要麼是記憶體控制有問題,要麼是時序控制有問題(debug慢,所以恰好正常執行)
-
3 # 迷夢雨夜
一個是自己編輯的DEBUG宏,可能會存在DEBUG模式下才執行的程式碼,另一種情況是RELEASE下設定的編譯或連結選項進行了包體或函式精簡,這個可能會導致一些問題
-
4 # 罄竹南山
還是有差別。比如在記憶體初始化上就不一樣。有的時候會出來在兩個版本下執行的結果不一樣。也會出現不能執行的情況
-
5 # 量子糾纏速度之謎
debug不對程式碼進行最佳化,還會附加除錯資訊。release會對程式碼進行最佳化,不附加除錯資訊。
至於debug可以release不行,可能是堆疊有問題。
-
6 # R7Forever
不行的話,用dunp方式看看是哪裡不對。首先先看看程式碼是不是debug和release 是不是走不同分支;其次,看看release版的時序是否正確。最後看看記憶體分配這些。
-
7 # 貧道法號bug
九成是記憶體控制有問題。曾經也遇到過,老是找不出問題所在,就乾脆以debug釋出了。直到一年後,一個偶然的機會,發現是有個陣列上限設錯了。
debug 編譯,連結debug版庫檔案,生成的可執行程式碼包含除錯資訊。
release 編譯,連結release版庫檔案,生成的可執行程式碼不含除錯資訊。
你需要檢查程式設計環境,兩種編譯模式的設定引數,是不是release比debug更嚴格。