BSOD 出現 WHEA_UNCORRECTABLE_ERROR?用 WinDbg 實戰分析

約 6 分鐘閱讀

站長快讀:核心重點

  • 文章屬性:教學實戰 / 疑難排除
  • 適用系統:Windows 11 24H2 / 25H2 (實測於 OS Build 26200.8117)
  • 難易度 / 耗時:⭐⭐⭐ / 約 15 分鐘
  • 核心結論:WHEA_UNCORRECTABLE_ERROR (0x124) 不是隨機當機,而是硬體發出的死亡遺書。透過 WinDbg 分析 crash dump 中的 !errrec 指令,能精準定位是哪條 PCIe 通道或 SSD 控制器引發的底層斷線。
  • 適用對象:遇到 0x124 藍白畫面當機,特別是使用最新高階主機板與 PCIe Gen5 SSD 的玩家或進階除錯人員
  • 更新日期:2026-04-13

📌 快速答案

一句話答案:遇到 WHEA_UNCORRECTABLE_ERROR 藍白畫面時,請安裝 WinDbg 開啟記憶體傾印檔,輸入 !analyze -v 取得 Arg2 參數,再用 !errrec 指令即可精準找出是哪一個硬體(如過熱的 SSD 或不穩的 CPU)觸發系統保護性當機。


🔍 為什麼你需要這個?

電腦用得好好的,突然畫面卡住兩秒,接著無預警跳出藍白畫面(BSOD),上面寫著大大的 WHEA_UNCORRECTABLE_ERROR。如果你也被這個搞到崩潰,去論壇發問,通常只會得到「重灌看看」、「記憶體拔下來用橡皮擦擦一下」這種玄學解答。

BSOD 出現 WHEA_UNCORRECTABLE_ERROR?用 WinDbg 實戰分析 3

這個坑站長我親自踩過。WHEA 錯誤跟一般軟體衝突的 BSOD 完全不同,它是 Windows 底層收到硬體元件「我快不行了」的最後通牒。特別是在 2026 年,隨著 PCIe 5.0 NVMe SSD 普及,這類高速硬體如果在散熱不良或主機板 ASPM(主動狀態電源管理)切換不良的邊界條件下,非常容易無預警掉碟(Drop off the bus)。與其瞎猜換零件,不如直接用微軟官方的 WinDbg 工具,剖析系統死前留下的硬體遺書,讓證據說話。


🛠️ 實戰步驟

⚠️ 站長警告:本操作涉及系統底層,執行失誤可能導致資料遺失或系統無法開機。 動手前請務必完成:

  1. 建立系統還原點或完整備份(Windows 搜尋「建立還原點」;macOS 用 Time Machine;手機備份至雲端)
  2. 備份重要資料至外接硬碟或雲端
  3. 筆電 / 手機請確保電源充足,禁止在低電量下執行

步驟一:安裝微軟官方 WinDbg 偵錯工具

不要再去網路上亂載來路不明的分析軟體。微軟已經將最新版的 WinDbg 整合上架。

  1. 開啟 Microsoft Store,搜尋 WinDbg
  2. 找到由 Microsoft Corporation 發行的應用程式(擁有全新現代化介面的版本),點擊 取得
  3. 如果習慣用終端機,也可以開啟 PowerShell 並執行 `winget install Microsoft.WinDbg` 進行安裝。

步驟二:載入藍白畫面的 Crash Dump 檔案

Windows 在當機的瞬間,會把記憶體內部的狀態快照存下來,這就是我們的破案關鍵。

  1. 從開始功能表以 系統管理員身分 執行 WinDbg。
  2. 點擊左上角的 FileOpen dump file
  3. 導覽至 C:\Windows\Minidump 目錄,選擇最新日期的 .dmp 檔案。(如果找不到,可能系統設定成完整傾印,請找 C:\Windows\MEMORY.DMP)。

步驟三:執行 !analyze -v 並解讀 Bugcheck 0x124

載入傾印檔後,我們要下達指令讓除錯引擎開始分析。

  1. 在 WinDbg 下方的指令輸入框,輸入 `!analyze -v` 並按下 Enter 鍵。
  2. 稍等片刻,畫面會吐出大量分析資訊。請將視窗往上捲動,找到 BUGCHECK_CODE。對於 WHEA 錯誤,代碼絕對是 124
  3. 關鍵在於參數。往下尋找 Arg2:,後面會跟著一串 16 進位的記憶體位址(例如 ffffc201a3b4c028)。這串數字就是硬體錯誤紀錄(Error Record)在記憶體中的存放位置,請把這個位址複製下來。

PowerShell

# WinDbg 輸出範例
WHEA_UNCORRECTABLE_ERROR (124)
A fatal hardware error has occurred.
Arguments:
Arg1: 0000000000000004  # 代表這是一個 PCI Express Error
Arg2: ffffc201a3b4c028  # <--- 將這個位址複製下來
Arg3: 0000000000000000
Arg4: 0000000000000000

💡 為什麼要這樣做? !analyze -v 只是初步把當機的表面特徵列出來。Arg2 指向的記憶體區塊,存放著 CPU 從主機板 ACPI 攔截下來的最底層原始硬體報錯訊號。

步驟四:使用 !errrec 逼出底層硬體元凶

有了錯誤紀錄的位址,我們就能直接把硬體設備的「供詞」逼出來。

  1. 在指令列輸入 `!errrec` 加上一個空格,接著貼上剛剛複製的 Arg2 位址。
  2. 完整指令看起來會像這樣:`!errrec ffffc201a3b4c028`,按下 Enter 鍵。
  3. 在吐出的進階報告中,尋找 Section 2Error Type 相關的描述。如果看到 Device/Function/Class 以及明確的 Vendor IDDevice ID,你就可以直接把這組 ID 丟上 Google,精準確認是哪一張顯示卡、哪一條 SSD、或是哪一個 USB 控制器在斷線鬧脾氣。

🔬 底層機制:這個問題到底在系統哪一層?

當畫面出現 WHEA_UNCORRECTABLE_ERROR 時,到底是 Windows 當掉了,還是硬體壞了?

WHEA 全名是 Windows Hardware Error Architecture。這個機制非常底層。當主機板上的匯流排(例如 PCIe 通道)發生訊號完整性流失、或是 CPU L3 快取發生無法修正的 ECC 錯誤時,硬體本身會產生一個不可遮蔽中斷(NMI)或 Machine Check Exception (MCE)。

這個底層訊號會先傳給主機板的 ACPI(進階組態與電源介面),ACPI 接著將錯誤打包回報給 Windows 的 Kernel(核心層)。Windows 核心層收到這個「致命等級」的硬體回報後,判斷系統已經無法保證運算結果的正確性,為了避免把錯誤的資料寫進硬碟導致資料庫大毀滅,核心層會「主動且立刻」觸發 Bugcheck 0x124,拉下藍白畫面的布幕。

所以,WHEA 不是 Windows 作業系統本身的 Bug,而是 Windows 在保護你的資料免受硬體不穩的摧殘。


💡 總結:進階玩法與底層邏輯

站長我前陣子在測試最新版 Windows 11 25H2 (build 26200.8117,實測日期 2026-04-13) 搭配某廠牌新出的 PCIe 5.0 4TB SSD 時,頻繁遇到這個 WHEA_UNCORRECTABLE_ERROR 藍白畫面。用上面的 WinDbg 流程一查,!errrec 明確指出是 Vendor ID 144D(Samsung 控制器)發生了 PCIe Link Training 失敗。

後來我掛上熱像儀實測,發現只要在執行大型遊戲讀取時,如果 SSD 控制器溫度飆破 82°C 這個邊界條件,主控就會啟動極端的自我保護,瞬間從 PCIe 匯流排上「消失」。Windows 讀不到系統碟,當然直接噴 0x124 當機。最後我進 BIOS 把該 PCIe M.2 插槽的 ASPM L1 狀態強制關閉(Disable),並換上一顆帶有主動風扇的 M.2 散熱器,再也沒有當機過。硬體除錯不能靠感覺,用 WinDbg 讓 Log 說話,才是極客該有的修養。


❓ 常見問題

Q:我的 Minidump 資料夾裡面是空的,怎麼辦?

A: 這是因為 Windows 預設當機時沒有正確寫入傾印檔,或是被清理軟體刪掉了。請到 設定系統進階系統設定 → 在「啟動及修復」區塊點擊 設定。將「寫入偵錯資訊」改為「小記憶體傾印 (256 KB)」,並確保「自動重新啟動」有取消勾選。等下次不幸再度 BSOD 時,檔案就會乖乖產出了。

Q:WinDbg 顯示「Symbol file could not be found」,指令跑不出來?

A: 這是因為除錯器缺乏微軟的符號檔對照表。在 WinDbg 中輸入指令 `.symfix`,然後輸入 `.reload`。這會強制 WinDbg 連上微軟伺服器下載最新的系統對應符號檔,之後再跑 !analyze -v 就會正常解析了。


📎 參考資料來源

📖 Microsoft Learn: Bug Check 0x124 WHEA_UNCORRECTABLE_ERROR (查詢日期: 2026-04-13)

📖 Microsoft Learn: Install WinDbg (查詢日期: 2026-04-13)