簡體   English   中英

在調試/單步調試中檢查變量時,函數評估超時

[英]Function evaluation timed out when examining variables in debug/stepping through

在調試/單步執行代碼時,我嘗試檢查監視中的變量,每次內部變量說明函數評估超時都會出錯。

有誰知道這是為什么以及如何避免它? 因為它影響了我調試代碼的能力。

這是在VS2010 Premium內。

導致此問題的最可能原因是對屬性或ToString方法的隱式評估,這會導致CLR評估線程出現問題。 要驗證此操作,請關閉隱式評估。

  • 工具 - >選項
  • 調試
  • 取消選中“啟用屬性評估和其他隱式函數調用”

然后重新啟動您的方案,看看它是否有效。

Visual Studio執行屬性getter來獲取它的值,如果它需要很長時間,因為它做了一些昂貴的事情就會得到這個錯誤。 考慮:

public class foo
{
    private object lockObject = new object();
    public int bar
    {
        get
        {
             lock(lockObject){
                return 42;
             }
         }
     }
     public int aMethod()
     {
         lock(lockObject)
         {
             var a = this.bar;
             return a*2;   //insert a break point here
          }
      }
}

如果在aMethod中的return語句中添加斷點,則調試器將無法評估bar屬性,因為這樣做需要它獲取鎖定對象,但由於程序將保留,因此無法執行此操作在斷點處於活動狀態時永遠鎖定

暫無
暫無

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

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