Debug模式下不崩潰, Release模式下偶爾發生崩潰的解決思路


資料整合於各網友大佬。

debug和release兩種編譯模式的區別:

         debug和Release的區別

         深入了解Debug 和Release

 

調試release版本的方法:

        1. 使用彈出對話框的方法,確定是哪里出錯了,然后再查看問題。此方法是笨方法,適用於新手,可以解決一些問題,但是只能定位,無法像調試一樣查看過程中變量的信息。

        2. 此外,在實踐中發現,通過上述方法會對結果產生影響,為避免此現象發生,換一種方法(在QT下),使用qInstallMessageHandler(myoutput);其中myoutput,是根據qt幫助文檔中的例子寫的(直接復制過來就能用)然后再需要打印提示信息的地方直接使用即可。具體查看可通過以下設置查看錯誤信息:

       第一是打開項目屬性->連接器->系統->子系統->選擇控制台;即可在控制台上輸出打印信息;

       第二是直接在剛才函數后面添加一個文件,以讀寫和追加方式打開,將調試信息輸出到文本文件中。

        3. 其實,更好的解決方法是:

        設置release版本下的屬性,c/c++->優化->已禁用;

        連接器調試->生成調試信息改為優化以便於調試,即可像debug一樣打斷點進行調試了。

        經過一番折騰,最后發現是有個指針變量沒有賦初值導致的。常見的debug沒問題而release出錯的情況主要有:

        變量未初始化;

        數據溢出;

        內存分配方式不同引起的問題等。

 

如何使Qt的release模式可調式(windows)如何使QT的Release模式可調試(Windows)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM