2011-05-18 50 views
22

如何設置德調試器停止時,某些特定的變量有一個定義的值?例如,我有一個代碼,它崩潰,循環10000次進行一些後處理。我知道這個錯誤可能是由7000次迭代產生的,所以我想停下來,避免從第一個7000開始手動循環。 我使用visual studio 2008和2010與c#,我認爲解決方案將是兩者相同。如何停止特定變量值的調試器?

回答

35

您正在尋找的是一個有條件的轉折點。假設變量名稱爲i,以下是如何設置它。

  • 值設置後
  • 右擊斷點的紅點部分,然後選擇「條件」
  • 輸入要檢查的條件設置就行了正常的斷點。例如:i == 10000
  • 點擊OK

現在再次運行您的方案,只有當i值等於10000斷點將被命中。

一句警告。您幾乎可以將任何合法的C#表達式放入條件斷點,但每次觸發斷點時都會對其進行評估。如果使用複雜的條件,可能會導致非常慢的調試

+0

優秀@Jared,該上下文菜單還提供了其他停止機制,從來沒有跨過我的腦海在紅色的球做一個正確的點擊,謝謝。 – mjsr 2011-05-18 17:12:26

+0

如果我只知道變量值(沒有變量名稱),該怎麼辦?如果有任何局部變量賦值了我正在尋找的值,是否可以中斷代碼? – matandked 2014-08-26 18:48:18

-2

的簡單的方法來做到這一點是:

如果(nameVariable = X){ 斷點:nameVariable; }

+2

這是困難的方法,因爲您必須更改代碼。 – sbi 2011-05-18 16:56:53

0

打開斷點窗口並從其菜單中創建一個新的數據斷點。