簡體   English   中英

為什么Visual Studio在調試時停止?

[英]Why does Visual Studio stall while debugging?

有時候,當我調試ac#應用程序時,我會遇到一個斷點,當我嘗試繼續,步入或進入時,它什么也沒做。 突出顯示當前行的黃線消失,但它永遠不會到達下一行。 應用程序仍然像我在斷點處一樣凍結,除了點擊停止調試按鈕並重新啟動,我什么也做不了。 這不會一直發生,但一旦它在應用程序上啟動,它似乎總是發生在該應用程序之后。 我發現在類聲明之前添加以下代碼“修復”該應用程序的問題,但我很好奇為什么會發生這種情況。

[System.Diagnostics.DebuggerDisplay("Form1")]

其他細節:我沒有注意到特定線凍結時的任何模式。 我編寫的大多數應用程序都使用線程,因此每次在一個線程中發生這種情況的可能性很小。

我已經看到了調試器試圖評估自動/本地窗口中顯示的變量的停滯問題。 如果評估很復雜,那么它可能會導致嚴重的停頓。

您可以通過工具|選項關閉自動評估,它確實會產生很大的影響。

我遇到過這種行為,雖然這是我的第一次。

我通過兩種方式解決了這個問題

  1. 你放置這個屬性的方法,[System.Diagnostics.DebuggerDisplay(“Form1”)]
  2. 關閉工具 - >選項 - >調試 - >常規 - >啟用屬性評估和其他隱式函數調用。

我仍在調試我的代碼,但在我看來,一些Autos評估失敗(可能拋出異常),這可能會使調試器崩潰。

如果您也是這樣,請告訴我們。

你在調試什么樣的代碼?

當你“步入”你是在調用自己的.NET代碼,還是調用本機庫,或者你沒有pdb文件的外部程序集? 這些情況中的任何一種都會導致調試器在外部代碼執行時凍結。

如果您調試多線程應用程序,您可能正在更改線程。 您可以在調試時使用“Thread windows”在Thread之間切換,以便能夠再次查看調試黃線的位置。

我的通靈調試器說你錯過了某些東西的符號,並且VS正在試圖查找它們。 嘗試將符號路徑設置為奇怪的東西,如C:\\ foo。

你的情況似乎很可能是死鎖。 按下暫停按鈕,下次發生時查看線程視圖。

當我的數據庫非常慢時,我已經看到了這種行為,NHibernate試圖在引擎蓋下寫入它,並且整個調試器在數據庫被掛鈎時被隨機鎖定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM