2012-02-02 43 views
4

我在調試XNA項目時遇到了一個奇怪的問題。每當我點擊一個特定的斷點並開始瀏覽「Locals」窗口時,整個過程和調試程序就會終止,而不會發出任何通知。觸發器可能會到達帶有紅色感嘆號的字段,並顯示「功能評估被中止」。XNA - 進程在調試時意外終止

我在我的代碼中沒有使用顯式多線程,因此我很困惑當進程實際上不運行時,進程如何終止(看起來好像它正確地到達最後)。

感謝您的任何幫助。

+0

聽起來好像連接的調試器可能會崩潰。它總是處於相同的斷點/方法評估中嗎?還是看似隨機?另外,你使用的是什麼版本的Visual Studio(即Express,Professional,Ultimate)? – 2012-02-02 10:58:47

+0

我使用的是VS2010旗艦版,它並不完全是隨機的,但我認爲崩潰發生在多個斷點上。有趣的是,當我不瀏覽當地人,只是讓調試器達到斷點後,什麼都不會發生。 – 2012-02-02 11:35:25

+0

聽起來像調試器本身在試圖評估當地人時崩潰了。之前我有類似的問題,並且隔離起來並不是特別容易。 – 2012-02-02 11:43:25

回答

7

這是因爲您的訪問器是無限遞歸的,導致堆棧溢出。

更改此:

get { return Level; } 

要這樣:

get { return level; } 

這實際上是在Visual Studio C#一個相當普遍的事情,這是非常惱人的,自動完成功能會一直喜歡訪問即使你在訪問者本身內,也可以使用成員名稱。我計算了5年後,微軟現在已經修復了這個問題。

編輯:n/m我看你已經在你自己的問題中得出這個結論。我想我應該先讀完所有的東西,然後我跳了起來。

0

好吧,我已經找到了解決方案,因此,任何人有類似的問題,在這個問題可能會發生誰:當試圖評估導致堆棧溢出的屬性,調試器掛即

protected int level; 
    public int Level 
    { 
     get { return Level; } 
    } 

正如這裏進一步解釋的那樣http://netpl.blogspot.com/2009_05_01_archive.html