2

VS 2010 Ultimate を使用して C# アプリケーションを開発しています。通常、これらのアプリケーションはユーザーの操作なしで長時間実行されます。もちろん、通常は内部にバグがあります。

残念ながら、多くの場合、アプリケーションはランダムにクラッシュし、エラーを再現することはできません. また、「アプリケーションが動作を停止しました」というメッセージだけが表示され、それ以上の情報が表示されないことがあります。

顧客のマシンに Visual Studio をインストールすることはできますが、顧客に VS を実行させ、デバッグ モードでソース コードをコンパイル/開始させることはできません。必要なのは、アプリケーションが起動してクラッシュしたにVS を起動することです。実際、実行時に例外が発生すると、Windows は「VS でデバッグしますか?」と尋ねますが、YES と答えると VS が起動しますが、単にソースが表示されません。コード (PC 上にもあります) であるため、例外の原因となっているコードの行を検査できません。VSは「ソースコードが利用できません」とだけ言っています。実際、Windows がどのようにして VS を起動し、クラッシュしたアプリケーションのソース コードがどこにあるかを知ることができるのか想像できません!

このデバッグ シナリオがどのように機能し、どのように構成するかを知っている人はいますか??

どうもありがとう、シモーネ

4

3 に答える 3

1

すでに実行中のVisualStudioインスタンスからデバッグするには、[デバッグ]メニュー項目を選択し、[プロセスにアタッチ...]を選択します。

プロセスにアタッチ

次に、リストから実行可能ファイルを選択し、[添付]を押して(またはダブルクリックして)、アプリケーションをデバッグしています。「はい」を選択し、Windowsがソースコードが利用できないと表示する場合、これはPDBをロードできなかったことを意味している可能性が高いため、「モジュール」でモジュールのシンボルを調べて、モジュールのシンボルをロードしたことを確認してください。 " 窓ガラス。

于 2012-05-07T04:24:27.867 に答える
1

Windbg デバッグ ツールは目的を解決します。

プロセス状態のダンプを取得し、windbg で分析を開始します。例外情報を提供します

于 2012-05-07T04:19:55.037 に答える
0

コンパイルされたプログラムの実行中にエラーをキャッチしたい場合は、何らかのログ メカニズムを使用する必要があります。最近では、独自に記述する必要はありません。NLogと呼ばれる、.NET アプリケーション用に設計された優れたオープンソースのログ エンジンがあります。ログをファイル、電子メール、コンソール、またはデータベースに保存できます。必要なものはほとんどすべてです:)。

お役に立てれば :)

于 2012-05-06T20:41:23.313 に答える