【C++】Debug模式和Release模式的區別


VS中的程序有兩種編譯模式:Debug模式和Release模式

Debug通常稱為調試版本,通過一系列編譯選項的配合,編譯結果通常包含調試信息,而且不做任何優化,以為開發人員提供強大的應用程序調試能力。

Release通常稱為發布版本,是為用戶使用的,一般客戶不允許在發布版本上進行調試,所以不保存調試信息,同時它往往進行了各種優化,以期達到代碼最小和速度最優,為用戶的使用提供便利。

Debug程序通常要比Releas程序要慢,尤其是處理視頻方面Release要比Debug快很多,在Release模式對程序進行調試的時候經常遇到變量雖然初始化了,但是在查看其值的時候卻發現是一個隨機值而不是初始化值,有時候在對變量進行監視的時候,會出現找不到變量的情況,原因大致如下

Debug跟Release在初始化時所做的操作是不同的,debug是將每個字節都賦值成0xcc,而release的賦值接近於隨機,如果你的程序中的某個變量沒有初始化就被引用,就很有可能出現異常:比如控制變量異常將導致程序流程不一致,用做數組下標將會使得程序崩潰,所以在聲明變量后馬上對其初始化一個默認的值是最簡單有效的方法,否則項目大了找都沒有地方找,代碼存在程序在debug模式下可能會忽略而不被察覺,debug下數組越界也大多不會有錯,在release中就暴露出來了

只有debug模式下才能設置斷點,單步執行,使用TRACE/ASSERT等調試輸出語句,Release不包含任何調試信息,所以體積小,運行速度快



免責聲明!

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



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