1

アプリケーションが時々ハングするので、その時のダンプを見て解決したいと思います。私が見ることができるダンプを自動的に作成するためにユーザーが実行できるアプリケーションを作成しました。ただし、何を試しても、ハングしたときに実行することをユーザーに覚えてもらうことはできないようです。彼らは常にプログラムを閉じてしまい、Windows エラー報告を呼び出します。

WER は一時ディレクトリにダンプを作成しますが、残念ながら Microsoft に情報を送信するかどうかのダイアログが閉じられるとすぐに削除されます。

ISV になって Microsoft のエラー報告サーバーからこの情報を取得することは 1 つの解決策ですが、現時点では現実的ではありません。

この問題に直面しているのは私だけだとは想像できません。ソフトウェアは何十人ものスタッフによって同時に使用されているため、すべての人に連絡してアプリケーションを実行させるか、他のアプリケーションなどを実行するまでそのダイアログを閉じるをクリックしないでください。

アプリは Windows Server 2003 で実行されています。Server 2008 には LocalDumps オプションがいくつかあり、それを保持できることを知っているので、残念です。

これらのダンプを何らかの方法で保存して、分析できるようにするためのアイデアはありますか? 障害はユーザーです。私は彼らの頑固さを受け入れており、他のアプリケーションを実行したり特別なことをしたりすることを期待していません。

アドバイスをありがとう!

4

1 に答える 1

1

自動ソリューションを選択できます。ハングアップしているかどうかを検出するには、自由に使用できるオプションが複数あると思います。

1 つは、アプリの別のスレッドから SendMessageTimeout を使用することです (fuFlags 値の 1 つとして SMTO_ABORTIFHUNG にも注意してください)。メイン スレッドが応答していないと判断したら、必要な場所にダンプ ファイルを保存できます。w2k 以降、IsHungAppWindow() (user32.dll) も利用できます。

于 2008-12-11T09:01:35.977 に答える