2013-02-14 58 views
2

當一個監視變量(不是一個屬性,只是一個普通變量)發生變化以查看變化發生的位置時,是否有可能中斷執行?我搜索並找到了this question,它涉及到它似乎不屬於我正在尋找的屬性。手錶變量改變時暫停執行?

這個變量在幾千行代碼中被使用了幾次,但是它只是在發生問題時從null更改。我們正試圖追查這個問題。

+0

這個問題可能的重複:http://stackoverflow.com/questions/7488155/can-i-set-a-breakpoint-when-variable-is-getting-specific-value-in-net – 2013-02-14 11:39:45

回答

5
  1. 在變量的名稱,創建一個斷點(F9)周圍的變量上的斷點的紅色圓圈
  2. 單擊鼠標右鍵,單擊「條件...」
  3. 類型,並改變收音機「改變」
  4. 斷點現在應該有它+,表明它是有條件的

但是:坦率地說,我覺得FO更簡單,更高效 - 特別是在田間;說我們先從:

string name; 

我們改變它只是現在到:

private string __name; 
string name { 
    get { return __name; } 
    set { __name = value; } 
} 

,只是把一個破發點上set線。它應該仍然可以編譯,並且可以輕鬆地看到更改。對於更復雜的情況:

private string __name; 
string name { 
    get { return __name; } 
    set { 
     if(__name != value) { 
      __name = value; // a non-trivial change 
     } 
    } 
} 

並將斷點放在最內行;這會繞過設置字段而不實際更改值的代碼。

+0

條件斷點打破你放置他們的路線...我不明白這會如何導致它打破變量實際發生變化的地方。 set方法起作用,但是嘗試了前者,而不是。 – 2017-07-27 14:34:02

+0

優秀的解決方案!與Call Stack一起實現此方法很好。 – MQuiggGeorgia 2018-01-05 16:56:47