2010-05-02 93 views
6

我正在調試一個項目,並且Visual Studio停止調試並關閉下面一行中的程序,沒有任何異常或錯誤消息(我已啓用選項中拋出異常的通知):Visual Studio停止調試,沒有意外出現錯誤

var query = Session.Linq<RSS>() 
      .Where(x => x.LastRetrieved <= date || x.LastRetrieved == null) 
      .Where(x => x.Moderated); 

其中Session.Linq引用LINQ2NHibernate。無論如何,問題是:這種行爲的可能原因是什麼?在VS 2010和2008上進行了測試 - 它們的表現完全相同,只是沒有進行調試。

更新。如果我將應用程序類型更改爲「控制檯應用程序」,則其行爲正常。很奇怪。

+0

您是否嘗試啓用First Chance Exceptions? (從內存中CTRL-ALT-E ...) – 2010-05-02 11:31:16

+0

是的,我啓用了所有這些。 – 2010-05-02 11:34:38

+2

看看輸出窗口(Ctrl + Alt + O)。在調試會話結束之前,您看到的最後幾行是什麼?它是否說'程序'[1140] MyApp.vshost.exe:Managed'已退出,代碼爲0(0x0)。「? – 2010-05-02 14:14:53

回答

3

我有一個類似的問題,雖然這可能不是你的情況上面的解決方案,但我希望它能幫助別人。

我不得不引用這是別人寫的一類,它是這樣的:

public class ItemPrice 
    { 
     public bool sucessIndicator 
     { 
      get { return sucessIndicator; } 
      set { sucessIndicator = value; } 
     } 

     public string productCode 
     { 
      get { return productCode; } 
      set { productCode = value; } 
     } 

     public string description 
     { 
      get { return description; } 
      set { description = value; } 
     } 

     public double price 
     { 
      get { return price; } 
      set { price = value; } 
     } 
    } 

乍一看它看起來不錯吧...直到你看到每一個屬性引用它的自我,而不是私人會員。

所以:

public string description 
     { 
      get { return description; } 
      set { description = value; } 
     } 

遞歸引用它自己並導致未得到證明我在VS,即使我有啓用所有異常堆棧溢出異常。它只是停止調試,沒有任何警告。

的解決方案是當然的去改變它更像是這樣的:

public string description 
     { 
      get; 
      set; 
     } 

希望幫助別人。

+0

,但有什麼辦法在崩潰VS調試器之前中斷棧溢出? – drzaus 2014-07-18 18:36:12

相關問題