2012-04-05 12 views
2

を用いた場合であっても、私はC++やC#(それらの両方が同じプロジェクト内)でアプリケーションを持ってクラッシュします。いくつかのシナリオ(毎回再生できない)では、アプリケーションがクラッシュし、このクラッシュの理由がわかりません。アプリケーションのtry..catchブロック

私はクラッシュを引き起こす可能性がありますすべての場所へのtry..catchブロックを追加しました - そして何も助けない - 私も、例外をキャッチしなければならない「Program.csの」コードへのtry..catchを追加しました。

どうすれば問題を見つけることができますか?私はどこから始めるべきですか?

+2

申し訳ありません、私のクリスタルボールはフリッツにあります。実際にあなたのコードに関する情報やエラーを含むようにしてみてください。***まったく何か***、本当に - この時点であなたは* less *情報を提供することはできません。 .. – cHao

+0

コードを追加してください。私たちは神ではありません。 –

+0

iはエラーを持っていけない - これは行うことができます – Yanshof

答えて

4

使用procdump。アプリがクラッシュすると、ダンプファイルが生成されるはずです。お気に入りのデバッガ(VS2010またはWinDbg)で開きます。コールスタックに手掛かりがないかどうかチェックします。

+1

しかし、クラッシュを引き起こすマシンには開発環境がなく、セットアップを許可していません。 procdumpは単一のアプリケーションとして動作できますか? – Yanshof

+3

これは小さなツールです。ダンプファイルを作成したら、それをあなたのdevマシンにコピーしてそこから分析してください。正しい記号があれば、読み込み可能な呼び出しスタックしか得られません。ですから、あなたがリリースしたすべてのビルドについて、あなたのPDBをどこかの場所にバックアップしてください(または、シンボル・サーバを持っている方が良いでしょう)。 –

0

は、アプリケーション(実行しない)デバッグしようとするとそれはあなたのアプリケーションのバグを見つけるでしょう。 Visual Studio 2010を使用している場合F5キーを押します。 -ma、-e、-tオプションと

+1

デバッガーは*特定の種類*のバグを見つける可能性は高くなりますが、特定の*を特定できません。しかし、これが競合状態になった場合、たとえば、デバッグは役に立たないでしょう。デバッガを接続するという行為は、タイミングを捨てることができます。 – cHao

+5

彼のマシンでは再生できず、クライアントで断続的にしか再生できない場合、どのように彼を助けますか? –

0

ログマネージャを使用してください。実行のあらゆる時点(機能の開始や終了など)で、情報を.txtファイルまたはデータベースに書き込みます。もちろん、問題がどこにあるかを知ることができます。

+0

私はロガーを持っています。また、 "catch(Exception ex)"も追加しますが、これはまだ役に立ちません。 – Yanshof

+0

@ Yanshofあなたが受け取ったクラッシュメッセージはなんですか?それは特別なことを言いますか? – Rauf

+0

いいえ! - これは問題です... – Yanshof

関連する問題