2012-03-08 90 views
4

我有一個StackOverflowException發生在LINQ DataContext深處,發生在SubmitChanges的調用中。在浪費了大量時間來確定溢出發生的位置之後,我似乎無法弄清楚。如何在堆棧溢出發生之前看到堆棧?

在堆棧溢出顯示之前,我如何看到堆棧看起來像什麼?

回答

3

除非被用戶代碼拋出,否則不能捕獲StackOverflowException(more info)

  • 在Visual Studio中,從「調試」菜單中選擇「新建斷點>歇在功能......」
  • 在「新建斷點」對話框的「功能」字段中輸入StackOverflowException.StackOverflowException
  • 在調試器中運行您的程序。一旦你得到堆棧溢出,調試器將停在你的斷點處。
+0

我會試試看。 VS告訴我'智能感知無法找到指定的位置。'這是好嗎? – 2012-03-08 18:13:17

+0

@JoshM。好點子!我也總是得到這個警告,而我忽略它。 – dasblinkenlight 2012-03-08 18:20:21

+0

這對我不起作用,VS仍然運行,直到SO被拋出,並試圖查看堆棧時,我得到'無法評估表達式,因爲當前線程處於堆棧溢出狀態。「# – 2012-03-08 18:43:29