■ はじめに 先日、社内でこういう話題がありました。 「Windows 上のプログラム A からソースコードのないプログラム B を起動する必要があるんだけど、プログラム B はときどき異常終了しちゃったりする。内輪用だから落ちること自体は目をつぶるとして、プログラム B が異常終了した場合にはプログラム A 側でそれを上手にハンドルしたい。良い方法はないものか」 この話に興味を感じ、異常終了を起こす短いプログラムを作ってデバッガでトレースしながらヒントを探している内にふと思いました。 このプログラムを裸で実行すると、プログラム内で処理されない例外は図のような形でシステムによって処理されます。しかし、デバッガ上でデバッギ(デバッグ対象)として実行している場合はデバッガが例外の発生を検知しそれをユーザに伝えます。つまり、デバッガの制御下にあります。 ということは「デバッガとして動作するコード
![Windowsプログラムの異常終了をトラップするコード : DSAS開発者の部屋](https://cdn-ak-scissors.b.st-hatena.com/image/square/d7f29f99fbc6a470394131c33543e7998830ccb5/height=288;version=1;width=512/https%3A%2F%2Flivedoor.blogimg.jp%2Fklab_gijutsu2%2Fimgs%2F4%2Fb%2F4b029333.png)