TadaoYamaokaの日記

山岡忠夫Homeで公開しているプログラムの開発ネタを中心に書いていきます。

Windowsのネイティブアプリで例外発生時にデバッガを起動する

Windows XP以前では、プログラムが異常終了すると
f:id:TadaoYamaoka:20191231133757p:plain
このようなダイアログが表示されて、デバッガを起動できた。
※このダイアログはWindows10のもの

Windows10のデフォルトの設定では、ダイアログが表示されず、アプリがだまって終了する。
一般ユーザには不要なダイアログなので、デフォルトで表示しないようになったのは理解できる。

しかし、開発者にとっては再現性の低いバグをデバッグしたい場合に、再現時にデバッガでアタッチして原因を調べたい場合がある。
そのような場合、グループポリシーの設定を変更することで、異常終了時にダイアログを表示できるようになる。

ダイアログ表示を有効にする

グループポリシーエディター「gpedit.msc」を起動して、[コンピュータの構成]→[管理用テンプレート]→[Windows コンポーネント]→[Windows エラー報告]を選択して、「重大なエラーが発生したユーザーインターフェースを表示しないようにする」を無効に設定する。
f:id:TadaoYamaoka:20191231134410p:plain
※「gpedit.msc」はWindows Homeでは使用できないが、調べると別の方法で起動する方法がある。

以上で、プログラムが異常終了時にダイアログが表示されるので、[デバッガ]ボタンをクリックすることでデバッガ起動できるようになる。