如何使用 WinDbg 分析轉儲檔案並解決 BSOD 錯誤

最後更新: 09/05/2025
作者: 艾薩克
  • WinDbg 可讓您解釋轉儲檔案並定位導致藍色畫面的驅動程式或進程。
  • 有不同類型的 記憶體轉儲 您可以根據分析所需的細節進行配置。
  • 驅動程式驗證工具有助於檢測 驅動程序 負責 藍屏.
  • 使用 !analyze -v 分析轉儲可提供有關錯誤所涉及的模組的詳細資訊。

風數據庫

當電腦 Windows 當遇到意外的嚴重錯誤時,系統通常會顯示可怕的藍色螢幕,也稱為 BSOD(藍色畫面死機)。雖然對許多用戶來說,這種錯誤可能看起來像是系統崩潰了,但它實際上可以成為了解系統問題的途徑。得益於像 WinDbg的 現在,透過系統產生的轉儲文件,可以相當精確地診斷問題的根源。

本文是 詳細指南,幫助您了解 .dmp 檔案是什麼以及如何使用 WinDbg 分析它們 以及我們可以使用哪些其他資源來識別 BSOD 錯誤的原因。如果您遇到意外重啟、隨機崩潰或無法解釋的藍屏,這裡有一個完整的指南來幫助您排除故障並解決問題。

什麼是 BSOD 以及原因是什麼?

當 Windows 因嚴重錯誤而無法繼續運作時,就會出現 BSOD。此時,系統停止運行,顯示技術訊息,並預設產生記憶體轉儲檔案。 該文件包含了解問題所在所需的重要數據:載入的驅動程式、處理器上下文、正在運行的執行緒等等。

BSOD 最常見的原因可能包括:

  • 驅動程式錯誤、設計不良或不相容。
  • 失敗 硬件,例如故障的 RAM 模組或損壞的磁碟。
  • 惡意程序 (惡意軟件) 會改變系統或導致檔案損壞。
  • 內部配置問題 作業系統(註冊表、過熱等)。

記憶體轉儲檔案包含什麼?

.dmp(轉儲)檔案包含 故障時系統狀態的關鍵訊息。該檔案允許您幾乎逐幀播放錯誤發生之前發生的事件。它儲存的資料包括:

  • El 停止程式碼及其參數.
  • 名單 主動系統驅動程式 發生錯誤時。
  • 處理器上下文 和內核(PRCB、EPROCESS、ETHREAD)。
  • 核心模式呼叫堆疊 活動過程。
  如何在 Ubuntu 中建立 Wifi 存取點

這可以訪問 非常準確地描繪出系統哪些部分導致了衝突.

在哪裡可以找到轉儲文件

根據系統配置,轉儲儲存在以下路徑:

  • C:\Windows\Minidump\:小型轉儲(minidump)。
  • C:\Windows\MEMORY.DMP:核心轉儲或完整轉儲。

若要查看或變更設置,請轉至 設定 > 系統 > 資訊 > 進階設定 和訪問 啟動和恢復。您可以在那裡選擇想要產生的轉儲類型。

記憶體轉儲的類型

Windows 可讓您根據詳細程度選擇不同類型的轉儲:

  1. 完全轉儲:捕獲所有系統 RAM。非常詳細,但是很重。
  2. 核心轉儲:僅作業系統的必要部分。細節和尺寸之間的平衡。
  3. 小型轉儲:僅顯示最少的訊息,例如錯誤和堆疊。它通常佔用大約 64 KB。

為了使完整轉儲正常運作, 分頁檔案必須與系統位於同一分區 並且必須有足夠的磁碟空間。

WinDbg簡介

風數據庫

WinDbg的 是微軟開發的除錯工具。它是免費的,可以從 微軟商店WinDbg 預覽版。其更新的介面使分析過程更加直觀。

該應用程式可讓您讀取記憶體轉儲、解釋錯誤並顯示哪些驅動程式或進程涉及故障。

讓 WinDbg 提供有用資訊的關鍵之一是新增路徑 符號 來自微軟。這使得功能和結構在分析過程中能夠被正確地識別。

WinDbg 的初始配置

從 Microsoft Store 下載 WinDbg Preview 後:

  1. 從「開始」功能表或 Windows 搜尋開啟該應用程式。
  2. 去吧 檔案 > 設定 > 偵錯設定.
  3. En 預設符號路徑中,輸入以下內容: srv*https://msdl.microsoft.com/download/symbols
  4. 點擊 OK 儲存設定。這將允許在分析期間下載適當的符號。

如何在 WinDbg 中開啟和分析轉儲

配置 WinDbg 後,請依照下列步驟操作:

  1. 去吧 文件>開啟轉儲文件.
  2. 選擇您要分析的.dmp 檔案。如果你在 C:\Windows\minidump 或者在系統目錄中,您必須以管理員身分開啟 WinDbg。
  3. 文件載入完成後,輸入指令 !analyze -v 然後按 簡介.
  Rust教學:記憶體安全與並發性

WinDbg 將顯示完整的分析,包括錯誤代碼、涉及的文件或模組、故障類型和建議。

分析結果意味著什麼?

風數據庫

之後產生的報告 !analyze -v 將包括以下資訊:

  • 錯誤檢查程式碼:BSOD代碼。
  • 模組名稱 o 圖片名稱:負責的文件。
  • 堆疊文字:呼叫堆疊來了解它是如何到達這一點的。
  • IRQL、裝置對象、驅動程式對象:執行元資料。

例如,錯誤如下 驅動程式電源狀態失敗 (0x0000009F),這表明控制器沒有正確響應具有省電功能的系統的狀態變化。

分析範例:USB故障

一些技術論壇上記錄的一個案例展示了 BSOD 是如何發生的 多個 _ IRP _ 完成 _ 請求 指向文件 usbehci.sys。這表明驅動程式存在問題 USB。然而,詳細分析所涉及的 IRP,該文件也出現 ax88172.sys,對應透過USB連接的網路卡。兩位車手之間的衝突導致了事故發生。

這種分析有助於 區分 Microsoft 驅動程式導致的錯誤和第三方硬體或驅動程式導致的錯誤.

使用驅動程式驗證程式

有關 75% 的藍屏 與故障驅動程式有關。多年來,Windows 一直包含一個名為 驅動程式驗證程式。允許您測試活動驅動程式並偵測隱藏的錯誤。

要激活它:

  1. 以管理員身份開啟控制台(搜尋 CMD 並右鍵單擊)。
  2. verifier 並按 Enter。
  3. 選擇該選項來檢查所有未簽名或自訂的驅動程式。
  4. 出現提示時重新啟動電腦。從那一刻起,系統將即時驗證駕駛員的行為。

建議謹慎使用此工具,因為它可能會降低系統速度,甚至阻止其運作。 開機。如果出現問題,可以停用 安全模式 使用相同的命令 verifier 並選擇“刪除現有設定”。

調試持久性錯誤的技巧

在某些情況下,直接分析轉儲不會得出結論性的結果。對於這些情況,建議收集更多資訊:

  • 檢查事件檢視器 查看崩潰日誌。
  • 嘗試用 的 LiveCD Linux 如果懷疑有硬體故障。
  • 運行類似的工具 MemTest86 檢查 RAM。
  • 使用類似程序 BlueScreenView,更加直觀和以最終用戶為導向。
  如何修復 PC/Android 上的耳機不平衡

常見的 BSOD 錯誤及其原因

一些錯誤訊息非常常見並且有詳細記錄。以下是一些範例及其通常的含義:

  • IRQL不是或等於::控制器故障或記憶體存取不正確。
  • 內核模式異常未處理: : 由於硬體或驅動程式導致核心出現錯誤。
  • PAGE_FAULT_IN_NONPAGED_AREA:存取無效的記憶體位址。
  • DRIVER_IRQL_NOT_LESS_OR_EQUAL:對驅動程式中受限變數的存取不當。

在所有這些情況下,分析中提到的.sys檔案對於確定來源是硬體、系統還是第三方軟體通常至關重要。

如果出現BSOD並且系統重啟,該怎麼辦?

是的。大多數系統都配置為在出現 BSOD 時自動重新啟動。這可能會阻止您看到整個訊息。為了正確顯示和產生轉儲:

  1. 遊覽 進階系統設定 > 啟動和恢復.
  2. 取消選取該選項 自動重啟.
  3. 確保建立記憶體轉儲的選項已啟用。

這樣,下次遇到 BSOD 時,您可以記錄錯誤並確保正確建立 .dmp 檔案以供以後分析。

感謝像這樣的工具 WinDbg的,就完全可以診斷出藍屏錯誤的來源。儘管讀取轉儲文件一開始可能看起來很複雜,但透過適當的設定和一些練習,您可以深入了解系統的內部狀態。 BSOD 分析對於進階使用者和技術人員的故障排除至關重要,可讓他們有效地識別和解決錯誤。