當前位置:編程學習大全網 - 編程語言 - Release版本的調試程序

Release版本的調試程序

怎樣“調試” Release 版的程序

遇到Debug成功但Release失敗,顯然是壹件很沮喪的事,而且往往無從下手。如果妳看了以上的分析,結合錯誤的具體表現,很快找出了錯誤,固然很好。但如果壹時找不出,以下給出了壹些在這種情況下的策略。  1. 前面已經提過,Debug和Release只是壹組編譯選項的差別,實際上並沒有什麽定義能區分二者。我們可以修改Release版的編譯選項來縮小錯誤 範圍。如上所述,可以把Release 的選項逐個改為與之相對的Debug選項,如/MD改為/MDd、/O1改為/Od,或運行時間優化改為程序大小優化。註意,壹次只改壹個選項,看改哪個選項時錯誤消失,再對應該選項相關的錯誤,針對性地查找。這些選項在ProjectSettings...中都可以直接通過列表選取,通常不要手動修改。由於以上的分析已相當全面,這個方法是最有效的。  2. 在編程過程中就要時常註意測試 Release 版本,以免最後代碼太多,時間又很緊。  3. 在 Debug 版中使用 /W4 警告級別,這樣可以從編譯器獲得最大限度的錯誤信息,比如 if( i =0 )就會引起 /W4 警告。不要忽略這些警告,通常這是妳程序中的 Bug 引起的。但有時 /W4 會帶來很多冗余信息,如 未使用的函數參數警告,而很多消息處理函數都會忽略某些參數。我們可以用:

#progma warning(disable: 4702)  //禁止  //...  #progma warning(default: 4702)  //重新允許來暫時禁止某個警告,或使用  #progma warning(push, 3)  //設置警告級別為 /W3  //...  #progma warning(pop)  //重設為 /W4  來暫時改變警告級別,有時妳可以只在認為可疑的那壹部分代碼使用 /W4。  4. 妳也可以像Debug壹樣調試妳的Release版,只要加入調試符號。在Project/Settings... 中,選中 Settings for Win32 Release,選中 C/C++ 標簽,Category 選 General,Debug Info 選 Program Database。再在 Link 標簽 Project options 最後加上 /OPT:REF (引號不要輸)。這樣調試器就能使用 pdb 文件中的調試符號。  但調試時妳會發現斷點很難設置,變量也很難找到?這些都被優化過了。不過令人慶幸的是,Call Stack窗口仍然工作正常,即使幀指針被優化,棧信息(特別是返回地址)仍然能找到。這對定位錯誤很有幫助。

  • 上一篇:Windows網絡編程案例教程的正 文 摘 要
  • 下一篇:壹米直徑大口徑鉆孔鉆進介紹
  • copyright 2024編程學習大全網