VC6 0 Release 如何除錯

2021-06-22 11:51:24 字數 1248 閱讀 8842

寫下來吧,當你在release版本下無能為力的時候

首先必須明確的是,什麼是release版程式,什麼是debug版程式

debug通常稱為除錯版本,它包含除錯資訊,並且不作任何優化,便於程式設計師除錯程式。release稱為發布版本,它往往是進行了各種優化,使得程式在**大小和執行速度上都是最優的,以便使用者很好地使用。

debug 和 release的真正秘密,在於一組編譯選項。下面列出了分別針對二者的選項(當然除此之外還有其他一些,如/fd/fo,但區別並不重要,通常他們也不會引起 release 版錯誤,在此不討論)

debug 版本

引數 含義

/mdd /mld 或 /mtd 使用 debug runtime library (除錯版本的執行時刻函式庫)

/od 關閉優化開關

/d "_debug" 相當於 #define _debug,開啟編譯除錯**開關 (主要針對assert函式)

/zi 建立 edit and continue(編輯繼續)資料庫,這樣在除錯過程中如果修改了源**不需重新編譯

/gz 可以幫助捕獲記憶體錯誤

/gm 開啟最小化重鏈結開關, 減少鏈結時間

release 版本

引數 含義

/md /ml 或 /mt 使用發布版本的執行時刻函式庫

/o1 或 /o2 優化開關,使程式最小或最快

/d "ndebug" 關閉條件編譯除錯**開關 (即不編譯assert函式)

/gf 合併重複的字串, 並將字串常量放到唯讀記憶體, 防止被修改

實際上,debug 和 release並沒有本質的界限,他們只是一組編譯選項的集合,編譯器只是按照預定的選項行動。事實上,我們甚至可以修改這些選項,從而得到優化過的除錯版本或是帶跟蹤語句的發布版本。

ok,知道了這些,誰還會說release版本不能除錯?

只需要設定相應編譯環境,release同樣可以像debug版本設定斷點,檢視引數。

步驟如下:

1、在project settings裡選settings for為allconfigurations。

2、在c/c++標籤中,debug info 選 programdatabase。

3、在link 標籤中,category選 debug,選中debug info核取方塊和microsoft format。

現在就可以像在debug

版本中那樣設定斷點進行測試了,但是記住,release版本由於**優化,有些變數是觀察不到的,行的執行順序可能也會不同。

VC如何除錯release版本

project setting c c general頁 optimizations中選擇disable debug debug info中選擇program database or program database for edit and conitnue project setting lin...

小程式(2)vc 6 0下release除錯

寫下來吧,當你在release版本下無能為力的時候 首先必須明確的是,什麼是release版程式,什麼是debug版程式 debug通常稱為除錯版本,它包含除錯資訊,並且不作任何優化,便於程式設計師除錯程式。release稱為發布版本,它往往是進行了各種優化,使得程式在 大小和執行速度上都是最優的,...

VC 6 0設定Release模式可除錯的方法

vc6編譯選項的含義 debug 模式 mdd mld 或 mtd 使用 debug runtime library 除錯版本的執行時刻函式庫 od 關閉優化開關 d debug 相當於 define debug,開啟編譯除錯 開關 主要針對assert函式 zi 建立 edit and conti...