共用方式為


設定自動偵錯

用戶可以設定自動偵錯,以協助他們判斷其系統或應用程式已停止回應的原因。

設定系統當機的自動偵錯

若要將目標電腦設定為在系統停止響應時產生損毀傾印檔案,請使用 控制台 中的系統應用程式。 按兩下 [ 進階系統設定],顯示 [ 系統屬性 ] 對話框。 在該方塊的 [進階] 索引標籤上,按兩下 [啟動和復原] 下的 [設定],然後使用適當的復原選項。 或者,您可以使用下列登錄機碼來設定損毀傾印選項:

HKEY_LOCAL_MACHINE SYSTEM\CurrentControlSet\控件\CrashControl \

您可以指定的檔案是損毀傾印檔案。 其預設名稱為 Memory.dmp。 您可以使用內核模式調試程序偵錯損毀傾印,例如 WinDbg 或 KD。 如需詳細資訊,請參閱調試程式隨附的檔。

設定應用程式當機的自動偵錯

當應用程式停止回應時(例如,在存取違規之後),系統會自動叫用登錄中指定的調試程式進行驗屍偵錯,如果命令行已正確設定,進程標識碼和事件句柄就會傳遞至調試程式。 下列程式描述如何在登錄中指定調試程式。

將調試程式設定為事後調試程式

  1. 移至下列登入機碼:

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

  2. 使用指定調試程式命令行的REG_SZ字串,新增或編輯 調試 程式值。

    字串應該包含調試程式可執行檔的完整路徑。 向調試程式命令行指出具有 「%ld」 參數的進程識別碼和事件句柄。 不同的調試程式可能會有自己的參數語法來指出這些值。 叫用調試程式時,第一個 「%ld」 會取代為進程標識碼,而第二個 「%ld」 會取代為事件句柄。

    下列文字是如何將 WinDbg 設定為調試程式的範例。

    "C:\debuggers\windbg.exe" -p %ld -e %ld -g
    
  3. 如果您想要在沒有使用者互動的情況下叫用調試程式,請使用REG_SZ字串來新增或編輯 自動 值,指定系統是否應該在叫用調試程式之前向使用者顯示對話方塊。 字串 “1” 會停用對話框;字串 “0” 會啟用對話框。

從自動偵錯排除應用程式

下列程式描述如何在 AeDebug 機碼下的 Auto 值設定為 1 之後,從自動偵錯中排除應用程式。

從自動偵錯排除應用程式

  1. 移至下列登入機碼:

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

  2. 將REG_DWORD值新增至 AutoExclusionList 子機碼,其中名稱是可執行文件的名稱,而值為 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 啟用事後偵錯