これは、いくつかの質問があるやや複雑な問題です。答えがある質問だけに答えてください。
いくつかのコンポーネントで Windows 例外が発生した場合にミニダンプを作成し、XP SP3 を最小限の OS としてサポートするタスクがあります。コンポーネントは次のとおりです。
- スタンドアロン C++ アプリ
- 既知のブラウザーで使用される CSP および PKCS11 ライブラリー (DLL)
- 1 つの UI サービスと 1 つの非 UI サービス
- 前の 3 つのポイントすべてで使用される静的ライブラリ
要件は、WER のようなもの (XP 以降) を持つことですが、Microsoft の現在の Winqual に相当するものではなく、専用のベンダー サーバーにレポートを送信する必要があります。レポート機能を 1 つの静的ライブラリにラップできれば、非常に便利です。
ただし、問題もあります。DLL は特殊な獣です。DLL コードで障害が発生した場合にのみレポートを生成する方法は? サービスには特別な取り扱いが必要になる場合もありますが、現時点ではわかりません。
まず、この作業に役立つ既知のオープンソース ライブラリはありますか? そうでない場合は、自分でロールバックする必要があります。
私が最初に考えたのは、各モジュールにスリープ状態のウォッチドッグ スレッドを用意することです。このスレッドは、未処理の例外フィルターから設定されるイベントを待機するだけです。スレッドはMiniDumpWriteDumpを使用してレポートを生成し、それをインターネット経由で送信してから終了し、前述のフィルターでスレッドが終了するのを待ってからプロセスを終了します。この解決策について何か考えはありますか?たとえば、ローカル システム アカウントの Windows サービスはインターネットにアクセスできますか?