簡體   English   中英

Visual Studio 2008:調試托管代碼時,下一行的步驟非常慢

[英]Visual Studio 2008 : Step to next line is very slow when debugging managed code

當通過F10逐行單步執行C#代碼時,調試器需要一秒鍾才能到達下一行。

我已經嘗試刪除所有手表和斷點,但這沒有任何區別。

這是正常的嗎? 很長一段時間以來都是這樣,所以我甚至不記得這是否更好。 我的開發計算機是一台四核機器,沒有后台任務活動,剩下大量內存。

如果這不正常,我還能嘗試什么? 它仍然可以使用,但一個不那么遲鈍的用戶界面將是偉大的...

可能發生的是你在調用堆棧框架中有一個變量,它有一個昂貴的.ToString方法。 在2008年,無論窗口是否實際可見,都會在每一步重建調用堆棧窗口的數據。 構建此窗口的一部分將調用.ToString,如果它們具有重寫的.ToString,則會在參數列表中顯示這些值。 嘗試禁用隱式.ToString調用,看看是否能解決問題。

  • 工具 - >選項 - >調試器
  • 取消選中“啟用隱式.ToString調用”

我發現如果你可以選擇調試打開的非托管代碼,即使你只調試托管代碼,調試器也可能需要一段時間才能在行之間進行調整。 嘗試關閉該選項( 項目>屬性>調試>啟用調試器>啟用非托管代碼調試 )。

我嘗試了以上所有方法。 取消選中“在源中顯示線程”按鈕可以修復它。

在我的情況下,禁用“在一個進程中斷時中斷所有進程”(工具/選項/調試器)將“步進”的時間從2-3秒減少到幾分之一秒。

我不知道為什么這個選項對單步執行有如此大的影響。 順便說一句,我想如果你使用的線程不是彼此獨立的,那么禁用這個選項可能會帶來麻煩。

我曾經經歷過緩慢的調試,因為我已經設置了VS來尋找不再存在的網絡共享上的pdb文件。

請在此處查看:工具 - 選項 - 調試 - 符號 - 符號文件(.pdb)位置

如果“自動”窗口打開,我聽說過這種問題。 嘗試關閉它,看看你的表現是否有所改善。

如果您還沒有,您可能還應該安裝“Visual Studio 2008 SP1調試和斷點”補丁。 請注意,此修補程序位於SP1之上。 補丁的文檔沒有專門解決你看到的緩慢,但它是一個非常大的補丁,你可能會很幸運。

Tools > Options > Debugging > General關閉啟用地址級調試選項。
這給我帶來了巨大的變化。

你有很多Watch表達式嗎? 它們將在每個步驟之間進行評估,如果它們需要時間運行,您會在步進時注意到它是一個延遲。

在停止C#調試之前,我遇到了10秒的延遲,然后才能再次啟動C#調試。 在此期間VS2008會掛起,沒有任何可點擊的內容。 Project Properties -> Debug禁用Visual Studio宿主進程后,現在有0秒的延遲。

暫無
暫無

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

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