自動デバッグの構成

ユーザーは、システムまたはアプリケーションが応答を停止した理由を判断できるように、自動デバッグを構成できます。

システム クラッシュの自動デバッグの構成

システムが応答を停止したときにクラッシュ ダンプ ファイルを生成するようにターゲット コンピューターを構成するには、コントロール パネルで システム アプリケーションを使用します。 [システムの詳細設定] をクリックすると、[システムのプロパティ] ダイアログ ボックスが表示されます。 そのボックスの [詳細設定] タブで、[スタートアップと回復] の[設定]をクリックし、適切な回復オプションを使用します。 または、次のレジストリ キーを使用してクラッシュ ダンプ オプションを構成することもできます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

指定できるファイルは、クラッシュ ダンプ ファイルです。 既定の名前は Memory.dmp です。 WinDbg や KD などのカーネル モード デバッガーを使用して、クラッシュ ダンプをデバッグできます。 詳細については、デバッガーに含まれているドキュメントを参照してください。

アプリケーション クラッシュの自動デバッグの構成

アプリケーションが応答を停止すると (アクセス違反の後など)、システムは、事後デバッグのためにレジストリで指定されたデバッガーを自動的に呼び出します。プロセス ID とイベント ハンドルは、コマンド ラインが正しく構成されている場合にデバッガーに渡されます。 次の手順では、レジストリでデバッガーを指定する方法について説明します。

デバッガーを事後分析デバッガーとして設定するには

  1. 次のレジストリ キーに移動する場合

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

  2. デバッガーのコマンド ラインを指定するREG_SZ文字列を使用して、 デバッガー の値を追加または編集します。

    文字列には、デバッガーの実行可能ファイルへの完全修飾パスを含める必要があります。 デバッガーのコマンド ラインに対して、"%ld" パラメーターを使用してプロセス ID とイベント ハンドルを指定します。 これらの値を示す独自のパラメーター構文は、デバッガーによって異なる場合があります。 デバッガーが呼び出されると、最初の "%ld" がプロセス ID に置き換えられ、2 番目の "%ld" がイベント ハンドルに置き換えられます。

    次のテキストは、デバッガーとして WinDbg をセットアップする方法の例です。

    "C:\debuggers\windbg.exe" -p %ld -e %ld -g
    
  3. ユーザーの操作を行わずにデバッガーを呼び出す場合は、デバッガーを呼び出す前にシステムがダイアログ ボックスをユーザーに表示するかどうかを指定するREG_SZ文字列を使用して、 自動 値を追加または編集します。 文字列 "1" はダイアログ ボックスを無効にします。文字列 "0" を指定すると、ダイアログ ボックスが有効になります。

自動デバッグからのアプリケーションの除外

次の手順では、 AeDebug キーの 自動 値が 1 に設定された後に、アプリケーションを自動デバッグから除外する方法について説明します。

自動デバッグからアプリケーションを除外するには

  1. 次のレジストリ キーに移動する場合

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

  2. AutoExclusionList サブキーにREG_DWORD値を追加します。ここで、名前は実行可能ファイルの名前、値は 1 です。 既定では、デスクトップ ウィンドウ マネージャー (Dwm.exe) は自動デバッグから除外されます。それ以外の場合は、Dwm.exeが応答を停止するとシステム デッドロックが発生する可能性があります (Dwm.exeが応答していないため、ユーザーはデバッガーによって表示されるインターフェイスを表示できず、Dwm.exeはデバッガーによって保持されているため終了できません)。

    Windows Server 2003 および Windows XP:AutoExclusionList サブキーは使用できないため、Dwm.exeを含むアプリケーションを自動デバッグから除外することはできません。

既定の AeDebug レジストリ エントリは、次のように表すことができます。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows NT
            CurrentVersion
               AeDebug
                  Auto = 1
                  AutoExclusionList
                     DWM.exe = 1

WinDbg を使用した事後デバッグの有効化