2008-11-20 12 views
5

以下是該場景。我正在調試我自己的應用程序(C/C++),該應用程序正在使用公司的另一個團隊開發的一些庫。當我的代碼產生一些邊緣情況時斷言失敗。它是一個痛苦,因爲斷言不正確,所以圖書館功能工作正常,但我得到所有這些中斷,我只需要繼續(很多作爲它的循環),所以我可以得到我真正感興趣的東西。當出於其他原因調試時,我必須使用庫的調試版本。其他團隊不會修復這個問題直到下一個版本(嘿,它在我們的機器上運行)。我可以將Visual Studio 2005設置爲在調試時忽略特定區域代碼中的斷言

我可以告訴調試器忽略這段代碼斷言的斷點(即它可以自動爲我繼續)。

回答

3

如果代碼被觸發自身的斷點(由__debugbreak或INT 3),不能使用條件斷點,因爲斷點不知道到Visual Studio的。但是,您可以通過修改調試器中的代碼來禁用任何您不感興趣的斷點。可能不是你想要的,因爲你需要在每個調試會話中重複這一點,但仍然可能比沒有好。欲瞭解更多信息,請閱讀How to disable a programmatical breakpoint/assert?

+0

是的,它產生一個INT 3,我會看看如果我可以在那個時候彈出一個NOP讓它停止打斷我... – 2008-11-20 12:41:19

2

自動忽略調試庫中的ASSERT()故障沒有好方法。如果那是你必須使用的那個,那麼你只能說服其他團隊說現在需要修復這個問題,或者如果你有這個庫的源代碼,你可以自己修復或刪除這些斷言來完成你的工作在此期間完成。

相關問題