2

ユーザーがファイルをドラッグ アンド ドロップして処理できるようにするコンソール アプリケーションを作成しました。ただし、ファイルの処理中にクラッシュし、何が起こっているのかわかりません。

どうすればこれをデバッグできますか? コンソールが閉じるのが速すぎて、問題が何であるかを確認できません。また、コマンドラインから呼び出して引数を指定しても、エラーを再現できません。

手順は次のとおりです。

  • Windows エクスプローラーで、入力ファイル (画像) を exe の上にドラッグします。
  • 次に、exeは画像を読み取り、それに対して何かを行います
  • 次に、画像を新しいファイルに保存します

保存中にクラッシュが発生しますが、問題がどこにあるのかについてはあまり興味がありませんが、実際にこれを適切にデバッグする方法が思いつかないという事実です。

4

3 に答える 3

3

アプリが他のプログラム(エクスプローラーなど)によって自動的に開始される場合-プロセスの開始時にデバッガーを起動するように構成します。

もう1つの簡単な方法(レジストリの調整がオプションではない場合)は、デバッガーをアタッチする機会を得るために、コードにDebugger.Breakを追加することです。または、Thread.Sleep(10000)を使用して、それをキャッチする機会を与えることもできます。

ドラッグアンドドロップについては特に具体的なことは何もありません(リモートデバッグを必要とすることが多いフォーカスの問題とは異なります)。

正しいパラメーターを使用してアプリケーションフォームVSを開始するか、実行中のアプリケーションにアタッチしてください。CLR例外に対して「デバッグ->例外->スロー時に中断」をオンにすることをお勧めします(「ツール->オプション->デバッグ->マイコードのみ」を無効にする必要がある場合があります)。

疑わしいトレースがないか、プロセスに接続している間、出力ウィンドウを監視します。

VSがうまくいかない場合は、WinDbgを同じように使用できます...ただし、最初にVSルートを試してください。

于 2012-07-28T22:37:14.793 に答える
0

次のように、プロジェクトプロパティでコマンドラインをデバッグしていることを指定できます。

デバッグ時間イベント引数を使用したVisualStudio2012

次に、通常どおりにブレークポイントを配置して、アプリをデバッグできます。

于 2012-07-28T22:12:10.283 に答える
0

最初に、Alexei Levenkov が言及したすべてを試したことを確認してください。それがうまくいかない場合 (何らかの方法で間違ったことをしている場合にのみ発生する可能性があります)、単純なログファイルを使用してエラーを追跡することもできますが、私は常にVSデバッガーの方がはるかに快適です。

于 2012-07-28T22:41:40.423 に答える