共用方式為


分析錯誤檢查藍屏幕數據

注意

本文適用於程式設計人員。 如果您是在使用計算機時收到藍色畫面錯誤碼的客戶,請參閱 針對藍色畫面錯誤進行疑難解答。

注意

如果您是 IT 專業人員或支援專員,如需詳細資訊,請參閱 停止或藍色畫面錯誤的 進階疑難解答。

收集停止程式代碼參數

每個錯誤檢查程式代碼都有四個相關聯的參數,可提供資訊。 參數會在每個停止程序代碼的 Bug 檢查程式代碼參考說明。

有多種方式可以收集四個停止程式代碼參數。

  • 檢查 事件檢視器 中的 Windows 系統記錄檔。 錯誤檢查的事件屬性會列出四個停止程式代碼參數。 如需詳細資訊,請參閱開啟 事件檢視器

  • 載入產生的傾印檔案,並使用 !analyze 命令附加調試程式。 如需詳細資訊,請參閱 使用 WinDbg 分析內核模式傾印檔案。

  • 將核心調試程式附加至錯誤的計算機。 當停止程式代碼發生時,調試程序輸出會在停止程序代碼十六進位值之後包含四個參數。

    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    Use !analyze -v to get detailed debugging information.
    
    BugCheck 9F, {3, ffffe000f38c06a0, fffff803c596cad0, ffffe000f46a1010}
    
    Implicit thread is now ffffe000`f4ca3040
    Probably caused by : hidusb.sys
    

錯誤檢查符號名稱

DRIVER_POWER_STATE_FAILURE是錯誤檢查符號名稱,具有 9F 的相關錯誤檢查碼。 與錯誤檢查符號名稱相關聯的停止程序代碼十六進位值列在錯誤檢查程式代碼參考

從調試程式讀取錯誤檢查資訊

如果已附加調試程式,且在計算機上啟用偵錯,錯誤檢查會導致目標計算機中斷調試程式。 在此情況下,藍色畫面可能不會立即出現。 此當機的完整詳細數據將會傳送至調試程式,並出現在調試程序視窗中。 若要第二次查看這項資訊,請使用 .bugcheck (顯示錯誤檢查數據) 命令或 !analyze 擴充功能命令。 如需開啟偵錯的資訊, 請參閱開始使用 WinDbg (Kernel-Mode)

核心偵錯和損毀傾印分析

當其他疑難解答技術失敗或週期性問題時,核心偵錯特別有用。 請記得擷取錯誤訊息之錯誤檢查資訊區段中的確切文字。 若要找出複雜的問題並開發可行的因應措施,最好記錄導致失敗的確切動作。

!analyze錯延伸模組會顯示錯誤檢查的相關信息,而且有助於判斷根本原因。

您也可以在此停止程式代碼的程式代碼中設定斷點,並嘗試向前單一步驟進入錯誤程序代碼。

如需詳細資訊,請參閱下列文章:

使用 Windows 調試程式進行損毀傾印分析 (WinDbg)

使用 WinDbg 分析內核模式傾印檔案

使用 !analyze 延伸模組!analyze

[重組工具] 顯示

使用驅動程式驗證器收集資訊

據估計,大約四分之三的藍色螢幕是由故障的司機造成的。 驅動程式驗證器是一種工具,可即時執行以檢查驅動程序的行為。 例如,驅動程式驗證器會檢查記憶體資源的使用方式,例如記憶體集區。 如果在執行驅動程式程式代碼時發現錯誤,它會主動建立例外狀況,以允許進一步審查該部分的驅動程序程序代碼。 驅動程式驗證器管理員內建於 Windows 中,可在所有 Windows 電腦上使用。 若要啟動驅動程式驗證器管理員,請在命令提示字元中輸入 驗證器 。 您可以設定您要驗證的驅動程式。 驗證驅動程式的程式代碼會在執行時增加額外負荷,因此請嘗試盡可能驗證最少的驅動程式數目。 如需詳細資訊,請參閱驅動程式驗證器

軟體工程師的秘訣

當您撰寫的程式代碼產生錯誤檢查時,您應該使用核心調試程式來分析問題,然後修正程式代碼中的 Bug。 如需完整詳細數據,請參閱 Bug 檢查程式代碼參考一節中的個別錯誤檢查程式代碼。

不過,您也可能遇到由您自己的程式碼所造成的錯誤檢查。 在此情況下,您可能無法修正問題的實際原因,因此您的目標應該是解決問題。 可能的話,請隔離並移除故障的硬體或軟體元件。

許多問題都可以透過基本疑難解答程序來解決,例如驗證指示、重新安裝重要元件,以及驗證檔案日期。 此外,事件檢視器、Sysinternals 診斷工具和網路監視工具可能會隔離並解決這些問題。

另請參閱