11

我正在嘗試用本地機器調試器調試Windows 8 C#商店應用程序。所以,我給MainPage的構造函數添加了一些不正確的行,在InitializeComponent之後調用。我嘗試了導致DivideByZeroNullReferenceException的代碼 - 結果相同。在本地機器上調試Windows應用商店應用程序

所以,我執行「開始調試」,並中斷調試這裏:

#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION 
     UnhandledException += (sender, e) => 
     { 
      if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break(); 
     }; 
#endif 

堆棧信息不可用,這是不可能檢測在那裏是一個錯誤(僅在輸出第一次機會異常消息窗口給出了提示)。

我試圖在項目預處理符號中定義DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION。這次我收到以下奇怪的消息:「調試器連接到YourProgram.exe,但未配置爲調試此未處理的異常」。

只有當在「例外」對話框中選中特定的例外類型,並且定義了DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION時,我才設法在導致錯誤的行上中斷。

那麼,在傳統的桌面應用程序調試中,有什麼方法可以打破有問題的線路?如果可能,無需修改例外列表。 DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION的目的究竟是什麼?

+0

把'System.Diagnostics.Debugger.Launch();'拋出異常之前。這將啓動調試器,以便您可以逐步查看問題所在。 –

+6

@Jack Hughes - 它改變了調試器行爲中的某些內容,但我試圖學習如何調試未知位置的錯誤。在程序的每一行之前添加「Debugger.Launch」是不可能的... –

回答

10

它看起來像一個xaml解析異常。你能看看異常信息,看看錯誤在哪裏嗎?

下面是一些示例截圖:

enter image description here

+0

錯過了這個。謝謝! –

14

以及當您啓動Visual Studio必須單擊在調試調試,然後選項和設置,然後一般,然後單擊啓用僅我的代碼。

+0

這是正確的答案。 –

+0

這是絕對最正確的一個,應該被接受。 – NoHarmDan

+1

這並沒有解決我的問題,我有'啓用只是我的代碼'檢查,但沒有幫助。 –

相關問題