我在調試XNA項目時遇到了一個奇怪的問題。每當我點擊一個特定的斷點並開始瀏覽「Locals」窗口時,整個過程和調試程序就會終止,而不會發出任何通知。觸發器可能會到達帶有紅色感嘆號的字段,並顯示「功能評估被中止」。XNA - 進程在調試時意外終止
我在我的代碼中沒有使用顯式多線程,因此我很困惑當進程實際上不運行時,進程如何終止(看起來好像它正確地到達最後)。
感謝您的任何幫助。
我在調試XNA項目時遇到了一個奇怪的問題。每當我點擊一個特定的斷點並開始瀏覽「Locals」窗口時,整個過程和調試程序就會終止,而不會發出任何通知。觸發器可能會到達帶有紅色感嘆號的字段,並顯示「功能評估被中止」。XNA - 進程在調試時意外終止
我在我的代碼中沒有使用顯式多線程,因此我很困惑當進程實際上不運行時,進程如何終止(看起來好像它正確地到達最後)。
感謝您的任何幫助。
這是因爲您的訪問器是無限遞歸的,導致堆棧溢出。
更改此:
get { return Level; }
要這樣:
get { return level; }
這實際上是在Visual Studio C#一個相當普遍的事情,這是非常惱人的,自動完成功能會一直喜歡訪問即使你在訪問者本身內,也可以使用成員名稱。我計算了5年後,微軟現在已經修復了這個問題。
編輯:n/m我看你已經在你自己的問題中得出這個結論。我想我應該先讀完所有的東西,然後我跳了起來。
好吧,我已經找到了解決方案,因此,任何人有類似的問題,在這個問題可能會發生誰:當試圖評估導致堆棧溢出的屬性,調試器掛即
protected int level;
public int Level
{
get { return Level; }
}
正如這裏進一步解釋的那樣http://netpl.blogspot.com/2009_05_01_archive.html
聽起來好像連接的調試器可能會崩潰。它總是處於相同的斷點/方法評估中嗎?還是看似隨機?另外,你使用的是什麼版本的Visual Studio(即Express,Professional,Ultimate)? – 2012-02-02 10:58:47
我使用的是VS2010旗艦版,它並不完全是隨機的,但我認爲崩潰發生在多個斷點上。有趣的是,當我不瀏覽當地人,只是讓調試器達到斷點後,什麼都不會發生。 – 2012-02-02 11:35:25
聽起來像調試器本身在試圖評估當地人時崩潰了。之前我有類似的問題,並且隔離起來並不是特別容易。 – 2012-02-02 11:43:25