2011-06-23 7 views
1

をデバッグ概要: 私は、XMLファイルを取り込み、XMLファイルに統計的な計算を実行するための新しいプロセスを開始し、C#のGUIをデバッグしています。何らかの理由でプロセスが明らかにエラーがなく実行中に終了しています。はC#GUI

  • を私は 実行をトレースするために、ログへの書き込みをしようとした:ウィンドウのメッセージボックスが表示され、と言うが、私が試した何

    「働い停止している、Windowsは、ソリューションを探しています」私は どこに失敗するか見ることができますが、 は、プログラムの の異なる時点で終了するようです。

  • Visual Studio デバッガを使用してプログラム の実行に従おうとしましたが、同様に
    プロセスが異なる時刻に終了します。

私が知りたいのですがどのような:

  • は私が 試みることができる任意の他のフリーデバッガはありますか?
  • 実行中に プロセスの現在の状態を確認するための呼び出しはありますか?
  • 他に何かを試してみることはできますか?

任意のヘルプは素晴らしいでしょう。おかげさまで

+0

のでを通して、あなたのアプリケーションを実行することです...あなたが取得している多くの異なりました例外? – Gleno

+0

私は例外が発生していますが、プログラム全体をtry-catchブロックに入れるまでは表示されませんでした。それはゼロ除算例外です。 –

答えて

5

Visual Studioのデバッガはこれまでに書かれたデバッグツールの中で最も優れています。

質問に答えるには、Debug>Exceptions(CTRL + D CTRL + E)に移動し、Common Language Runtime Exceptionsの横にあるThrownボックスをチェックします。静かにそれを飲み込んだり無視したりしても、例外がスローされるたびにデバッガがブレークします。これはあなたの問題を特定するのに役立ちます。

+0

+1!ちょっとファンボーイだけど、それは本当だよね - VSはすごくいいよ。 :) – Gleno

+0

ご意見ありがとうございました。私はその変更を行い、デバッガをもう一度実行します。 –

+0

@Gleno、私の評価はかなり客観的だと思います。ビジュアライザー、Intellitrace(それはちょっと気違いです)、スレッドごとのデバッグなど、豊富な補完機能を備えた別のデバッガーを見つけるのは難しいです。 – Blindy

2

追加するいくつかの

Debugger.Break(); 
だけ取ることを忘れないでください

このようなものをトラブルシューティングする際に便利な方法することができますデバッガにあなたを強制的にあなたのコード内の戦略的なポイントで

文...それらを!

+0

あなたのコメントをありがとう、私はいくつかを追加します。 –

1

AppDomain.CurrentDomainUnhandledExceptionイベントに登録して、問題があるかどうかを確認できます。メインフォームの前に、あなたのProgram.csファイルでこのような何かを追加する

が示されています:

AppDomain.CurrentDomain.UnhandledException += 
    new UnhandledExceptionEventHandler(UnhandledExceptionEventOccured); 

private static void UnhandledExceptionEventOccured(
    object sender, UnhandledExceptionEventArgs e) 
{ 
    Exception ex = e.ExceptionObject as Exception; 
    if(ex != null) 
    { 
     MessageBox.Show(ex.StackTrace, ex.Message); 
    } 
} 

別のオプションWinDbg