1

導致VisualStudio Debugger「無限旋轉」或掛起的已知狀態,條件或請求的可重現性是什麼?VisualStudio 2012更新4 c#無限循環/調試器掛起

(因爲下面的原始問題被擱置 - 請考慮決定放置問題,因爲它是可重複的,並且不像調試器會捕獲並拒絕設置斷點的「錯字」那麼簡單就像它知道它無法處理的其他條件一樣。) 當嘗試使用帶有條件斷點的調試器時,是否有其他人觀察到VisualStudio「無休止地旋轉」? 我等了超過5分鐘,其中一個cpu核心與我的應用程序中發生的事情「掛鉤」。在此期間,visualstudio正在使用一個cpu核心的75%以上,其中約2%或3%報告爲正在使用該應用程序。暫停似乎沒有效果。

奇怪的是,應用程序開始正常運行,並在禁用條件斷點後啓動登錄屏幕。然後,我可以重新啓用條件斷點,並在條件斷點處於活動狀態的情況下繼續使用調試器。

+2

這並不罕見。當條件斷點設置在緊密循環的代碼中時,它們可能非常昂貴。 –

+0

如此昂貴的應用程序似乎拒絕啓動!! ?? !! (我非常瞭解條件斷點是非常昂貴的,但是除了「VisualStudio自言自語......」之外,沒有其他任何發生......「 – Wonderbird

+0

您是否在循環內設置了條件斷點?在啓動期間評估了多少次?你可以發佈一些示例代碼來展示你的問題嗎? –

回答

1

看起來像VisualStudio 2012更新4的調試器/ ide不會警告或知道它不能處理評估變量的條件斷點,如果該變量接受放置斷點的行上的分配結果。

例如:

public static class MyTest 
{ 
    public static bool DoTesting = true; 
} 

設置在哪裏DoTesting設置爲true行條件斷點和使用條件 MyTest.DoTesting ==真 顯然會混淆的VisualStudio的debbuger這麼多,它會旋轉並且從不運行代碼的其餘部分。點擊「暫停」按鈕不會停止在條件語句行,因爲您期望它只是「點亮」「暫停」按鈕。我認爲他們應該拒絕創建條件斷點或抱怨它(因爲它與其他無法處理的條件相同)。注意,無論它是初始分配還是重新分配值結果。