11

ローカルマシンデバッガでWindows 8 C#Storeアプリケーションをデバッグしようとしています。だから、InitializeComponent呼び出しの後に、MainPageコンストラクタに不正な行を追加しました。私は同じ結果でDivideByZeroまたはNullReferenceExceptionを引き起こすコードを試しました。デバッグ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の解析例外のようです。あなたは例外メッセージを見て、エラーがどこにあるか確認できましたか? Visual Studioを起動したときに

enter image description here

+0

これを逃しました。ありがとう! –

14

さてあなたは、デバッグをクリックし、[オプション]と設定して、デバッグ全般とマイコードのみを有効にするをクリックする必要があります:ここで

は、いくつかのサンプルのスクリーンショットです。

+0

これは正しい答えです。 –

+0

これは絶対に正しいアンサーであり、それに応じて受け入れるべきです。 – NoHarmDan

+1

これは私の問題を解決しませんでした。私は 'Enable Just My Code'をチェックしましたが、助けはありませんでした。 –

関連する問題