簡體   English   中英

我如何:使用條件創建斷點? [C#Express]

[英]How Do I: Create a Breakpoint Using Conditions? [C# Express]

我一直在我的Visual C#2008 RSS Feed中看到這個:

http://lincolnfair.net/oldLincolnFair/mad.jpg

我很確定這是VS 2010唯一的功能,但我想知道是否還有在VS 2008中復制這個功能?

與@Relster類似,我有一個代碼片段,內容如下

#if DEBUG
    if( node.Name == "Book" )
        System.Diagnostics.Debugger.Break();
#endif

其中node.Name == "Book"根據我要測試的條件而變化。 #if DEBUG包裝器確保檢查永遠不會釋放代碼。

這也比使用Visual Studio中的條件斷點快了很多 當你使用內置條件bp時,visual studio必須打入應用程序,暫停所有線程,評估表達式並確定每次遇到斷點時它是否為真。 在緊密循環中,這可能是接近完全執行性能和爬行運行之間的差異。

你也可以在VS 2008中做到這一點。 我確定有很多方法可以做到這一點,但有一種方法是右鍵點擊現有斷點邊緣的紅點並選擇condition... ,然后給它一個評估為bool的條件,它會只有這是真的才能打破。 條件語句應該可以訪問設置斷點的行中的任何內容。

在該上下文菜單中還有其他選項,允許您過濾導致中斷的內容(例如僅某些線程),基於斷點被擊中的次數中斷,在遇到斷點時運行宏等。

另一種方法是制定自己的條件並使用以下方式調用:

System.Diagnostics.Debugger.Break(); 

雖然它可能不像VS2010設置斷點那樣復雜,但您可以以最小的代碼開銷獲得相同的效果。 只需記住在構建發布代碼時將其刪除。

注意:在VS2008和VS2005中,您可以通過設置常規斷點(F9或在裝訂線中雙擊)設置條件斷點,然后右鍵單擊該斷點以設置“條件...”。 VS2008 Express Edition中不提供設置條件斷點的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM