debug和release的區別

2021-08-16 23:20:45 字數 575 閱讀 7982

vs中的程式有debug和release兩個版本,debug通常稱為除錯版本,通過一系列編譯選項的配合,編譯的結果通常包含除錯資訊,而且不做任何優化,以為開發 人員提供強大的應用程式除錯能力。而release通常稱為發布版本,是為使用者使用的,一般客戶不允許在發布版本上進行除錯。所以不儲存除錯信 息,同時,它往往進行了各種優化,以期達到**最小和速度最優。為使用者的使用提供便利。

debug跟release在初始化變數時所做的操作是不同的,debug是將每個位元組位都賦成0xcc, 而release的賦值近似於隨機。如果你的程式中的某個變數沒被初始化就被引用,就很有可能出現異常:用作控制變數將導致流程導向不一致;用作陣列下標將會使程式崩潰;更加可能是造成其他變數的不準確而引起其他的錯誤。所以在宣告變數後馬上對其初始化乙個預設的值是最簡單有效的辦法,否則專案大了你找都沒地方找。**存在錯誤在debug方式下可能會忽略而不被察覺到。debug方式下陣列越界也大多不會出錯,在release中就暴露出來了,這個找起來就比較難了。

只有debug版的程式才能設定斷點、單步執行、使用 trace/assert等除錯輸出語句。realease不包含任何除錯資訊,所以體積小、執行速度快。

主要參考:

VC下關於debug和release的區別的討論

vc下關於debug和release的區別的討論 網上總結 2008 09 17 02 30 p.m.最近寫 過程中,發現 debug 下執行正常,release 下就會出現問題,百思不得其解,而release 下又無法進行除錯,於是只能採用printf方式逐步定位到問題所在處,才發現原來是給定的乙...

專案發布Debug和Release版的區別

一 debug和release的區別 debug 除錯版本,包含除錯資訊,所以容量比release大很多,並且不進行任何優化 優化會使除錯複雜化,因為源 和生成的指令間關係會更複雜 便於程式設計師除錯。debug模式下生成兩個檔案,除了.exe或.dll檔案外,還有乙個.pdb檔案,該檔案記錄了 中...

vs中debug和release版本的區別

vs中的程式有debug和release兩個版本,debug通常稱為除錯版本,通過一系列編譯選項的配合,編譯的結果通常包含除錯資訊,而且不做任何優化,以為開發 人員提供強大的應用程式除錯能力。而release通常稱為發布版本,是為使用者使用的,一般客戶不允許在發布版本上進行除錯。所以不儲存除錯信 息...