Windowsアプリが不正な処理で異常終了するとき、

MyApplication は動作を停止しました
問題が発生したため、プログラムが正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合はWindowsから通知されます。

というメッセージが表示されます。

通常は、このタイミングで、Windowsタスクマネージャーを開き、当該プロセスを右クリックして、ダンプファイルの作成を実行することで、ダンプファイルを保存することができます。

このような人手による操作ではなく、プログラムによって、ダンプファイルを自動保存する方法はないでしょうか?

私のアプリは、ランチャ.exeとメイン.exeに分かれていて、ランチャ.exeが DEBUG_ONLY_THIS_PROCESS フラグ付きで、 CreateProcessを呼び、メイン.exeをデバッグ対象の子プロセスとして起動するようになっています。

異常終了が発生したとき、EXCEPTION_DEBUG_EVENTを捕まえることはできるのですが、このタイミングで、ダンプファイルを任意の場所に自動保存したいと思います。

  • ダンプファイルのファイル構造は公開されているか?
  • ダンプファイルを作成するAPIは存在するか?

以上、ご存じでしたらご教示ください。