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

2021-06-20 00:06:03 字數 1328 閱讀 6040

寫下來吧,當你在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為all configurations。

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

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

現在就可以像在debug

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

配置VC 6 0下驅動程式編譯環境的步驟

作業系統 vmware 6.0 windows xp sp1 sp2 ddk版本 windows ddk 3790.1830 編譯環境 microsoft visual c 6.0 with sp6 2 build configurations去掉debug和release,新增mydriver c...

VC6 0下設定和獲取程式當前路徑

1 在程式中用到cfiledialog另存檔案或開啟檔案時,一般先獲得程式當前路徑 主程式路徑 再加上檔名或其它資料夾,此時程式當前路徑會發生變化。假設主程式路徑為d practice 獲取當前路徑 char strtemp strtemp new char max path getcurrentd...

VC6 0下直接用DDK編譯驅動程式的方法

csdn裡只有提問和回答,個人覺得只有這個還不夠,還需要人來分享知識,所以今天為了推廣自己寫的乙個vc6小外掛程式,順便分享一下用vc6直接編譯驅動程式的心得給需要的人。全文如下 vc6編譯驅動的方法 含32和64位 vc6只是乙個ide,可以方便的呼叫編譯器,鏈結器,標頭檔案,庫檔案,如果編輯和編...