vs中的程式有debug和release兩個版本,Debug通常稱為除錯版本,透過一系列編譯選項的配合,編譯的結果通常包含除錯資訊,而且不做任何最佳化,以為開發 人員提供強大的應用程式除錯能力。而Release通常稱為釋出版本,是為使用者使用的,一般客戶不允許在釋出版本上進行除錯。所以不儲存除錯信 息,同時,它往往進行了各種最佳化,以期達到程式碼最小和速度最優。為使用者的使用提供便利。 debug程式通常比release程式要慢,尤其是處理影片方便release要比debug快很多。在release模式對程式進行除錯的時候經常會遇到變數雖然初始化了,但是在檢視其值的時候卻發現是一個隨機的數並不是初始化的值,有時候在對變數進行監視的時候了,會出現找不到變數的情況,原因大致如下: debug跟release在初始化變數時所做的操作是不同的,debug是將每個位元組位都賦成0xcc, 而release的賦值近似於隨機。如果你的程式中的某個變數沒被初始化就被引用,就很有可能出現異常:用作控制變數將導致流程導向不一致;用作陣列下標將會使程式崩潰;更加可能是造成其他變數的不準確而引起其他的錯誤。所以在宣告變數後馬上對其初始化一個預設的值是最簡單有效的辦法,否則專案大了你找都沒地方找。程式碼存在錯誤在debug方式下可能會忽略而不被察覺到。debug方式下陣列越界也大多不會出錯,在release中就暴露出來了,這個找起來就比較難了。 只有DEBUG版的程式才能設定斷點、單步執行、使用 TRACE/ASSERT等除錯輸出語句。REALEASE不包含任何除錯資訊,所以體積小、執行速度快。
vs中的程式有debug和release兩個版本,Debug通常稱為除錯版本,透過一系列編譯選項的配合,編譯的結果通常包含除錯資訊,而且不做任何最佳化,以為開發 人員提供強大的應用程式除錯能力。而Release通常稱為釋出版本,是為使用者使用的,一般客戶不允許在釋出版本上進行除錯。所以不儲存除錯信 息,同時,它往往進行了各種最佳化,以期達到程式碼最小和速度最優。為使用者的使用提供便利。 debug程式通常比release程式要慢,尤其是處理影片方便release要比debug快很多。在release模式對程式進行除錯的時候經常會遇到變數雖然初始化了,但是在檢視其值的時候卻發現是一個隨機的數並不是初始化的值,有時候在對變數進行監視的時候了,會出現找不到變數的情況,原因大致如下: debug跟release在初始化變數時所做的操作是不同的,debug是將每個位元組位都賦成0xcc, 而release的賦值近似於隨機。如果你的程式中的某個變數沒被初始化就被引用,就很有可能出現異常:用作控制變數將導致流程導向不一致;用作陣列下標將會使程式崩潰;更加可能是造成其他變數的不準確而引起其他的錯誤。所以在宣告變數後馬上對其初始化一個預設的值是最簡單有效的辦法,否則專案大了你找都沒地方找。程式碼存在錯誤在debug方式下可能會忽略而不被察覺到。debug方式下陣列越界也大多不會出錯,在release中就暴露出來了,這個找起來就比較難了。 只有DEBUG版的程式才能設定斷點、單步執行、使用 TRACE/ASSERT等除錯輸出語句。REALEASE不包含任何除錯資訊,所以體積小、執行速度快。