VC 中除錯Release版本時怎樣設定斷點

2021-06-16 04:30:57 字數 1209 閱讀 3318

qa003535

建立日期:2023年11月13日最後修改日期:2023年12月11日 

所屬類別:

打聽

作業系統: win9x 

程式設計工具: vc6.0 

問題: vc++中除錯release版本時怎樣設定斷點?我的程式debug 版本工作正常,realse 版本一執行就出錯!message box顯示:unhandle exception:... aceess violation 

該如何除錯,按f9設斷點也不行!顯示break point 無效。(我的程式是多執行緒的)請介紹一些除錯release版本的方法或文章。

回答:

vc++中release版本是無法進行源**除錯的。一般可以在你懷疑有錯誤的地方執行前插入messagebox函式,在函式中顯示可能導致錯誤的變數的值。或者插入寫檔案的語句,輸出可能導致錯誤的變數的值到乙個記錄檔案。 

在需要加斷點的地方加上: 

__asm int 3 

不過除錯的時候無法顯示c程式,只有asm**。 

步驟如下: 

1、在project settings裡選settings for為all configurations。 

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

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

現在就可以像在除錯版本中那樣設定斷點進行測試了,由於**優化,有些變數觀察不到,行的執行順序可能也會不同。 

說明:assert巨集在發行版本中不起作用,而應該用verify來進行發行版的除錯。如果發行版本執行有問題,可以先禁止所有**優化再進行除錯。 

roy

請問,int3是設斷點用的中斷嗎?因為好像softice也是這樣做的。如果是,是cpu提供的支援還是windows提供的? 

答:int 3是專門用來設定斷點的,是cpu定義的,windows和dos下的大多數偵錯程式都採用這種方法。

此問題由李海回答。

VC如何除錯release版本

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

vc中的release和debug版本的區別

debug通常稱為除錯版本,它包含除錯資訊,並且不作任何優化,便於程式設計師除錯程式。release稱為發布版本,它往往是進行了各種優化,使得程式在 大小和執行速度上都是最優的,以便使用者很好地使用。debug 和 release 的真正秘密,在於一組編譯選項。下面列出了分別針對二者的選項 當然除此...

VC6 0 Release 如何除錯

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