必要に応じてクラッシュ ダンプを手動で作成する方法に関する投稿を多数見つけましたが、監視対象のアプリケーションがクラッシュしたときにクラッシュ ダンプが確実に生成されるようにしたいと考えています。
TechNet の PROCDUMP ツールは、これを完全に行うことができます。私が知りたいのは、独自の管理プログラムで同じことを行うコードを記述して、例外が発生したときにのみダンプ ファイルを作成する方法です。
私のプログラムは、監視したいプログラムのプロセス ID を知っているサービス アプリです。
明確にするために、PROCDUMP へのこの呼び出しが何をするかを模倣したいと思います。
procdump -e someprocess.exe -w
理論的には、Windows は DrWatson を使用してこの作業を行うことができるはずです。私が抱えている問題は、アプリケーションがランダムにクラッシュすると主張している約 200 の顧客システムを実行していることです。ワトソン博士は、アプリケーションがクラッシュしているという事実を確認していないようです。そのため、クラッシュ ダンプの生成を独自のソフトウェアで制御することにしました。
__try/except および MiniDumpWithFullMemory タイプの MiniDumpWriteDump() を使用して、独自のアプリケーションで独自のダンプを作成することができましたが、WinDbg でローカル変数などを見ることができないため、これはアプリケーション自体からトリガーされた..だから..監視/管理タイプのアプリケーションで仕事をしたいもう1つの理由。
少なくとも..あるアプリケーションが別のアプリケーションのクラッシュにどのように反応できるでしょうか? ある種のデバッグ フックをインストールする必要がありますか、それとも管理プログラムが実際にはカスタム デバッガーであるふりをする必要がありますか?
乾杯