⚡ 站長快讀:核心重點
- 文章屬性:疑難排除(底層除錯)
- 適用系統:Windows 10 21H2 / Windows 11(24H2、25H2 build 26200.xxxx)皆可,WinDbg 需從 Microsoft Store 取得
- 難易度 / 耗時:⭐⭐⭐ / 約 20–30 分鐘(含 WinDbg 安裝)
- 核心結論:BSOD 發生後 Windows 會在
C:\Windows\Minidump\產生一個幾 MB 的小型傾印檔,用 WinDbg 開啟後下一條!analyze -v指令,就能從輸出中的MODULE_NAME、IMAGE_NAME與FAILURE_BUCKET_ID三行找出真正的肇事驅動或硬體子系統 - 適用對象:想從「拍照記 stop code」進階到「自己讀 dump」的 Windows 進階用戶、OEM 工程師、企業 IT
- 更新日期:2026-04-14
📌 快速答案
一句話答案:用 Microsoft Store 下載 WinDbg,把
C:\Windows\Minidump\裡最新的 .dmp 檔拖進去,輸入!analyze -v後看 MODULE_NAME、IMAGE_NAME、FAILURE_BUCKET_ID 三行就能鎖定 BSOD 真兇。
🔍 為什麼你需要這個?
BSOD 跳出來的那一瞬間,大部分人會做三件事:罵髒話、拍照、重開機。然後去 Google 搜尋那一串大寫字母代碼(什麼 IRQL_NOT_LESS_OR_EQUAL、DPC_WATCHDOG_VIOLATION),找到的文章八成都是叫你:跑 SFC、重裝驅動、memtest、然後不行就重灌。
這些建議沒錯,但是太粗暴了——你根本不知道是哪一支驅動、哪一個硬體子系統在搞鬼,只能像拆地雷一樣一個一個排除。更痛的是,某些偶發性 BSOD 一個月才跳一次,你根本等不到症狀重現,光 SFC 跑完就當無事發生。
真正能告訴你「是誰殺了你的系統」的,是 Windows 崩潰時自動吐出的 minidump 檔,而打開這個檔的正確工具叫做 WinDbg。這東西 30 年前就存在,是微軟內部工程師除錯的官方武器,但因為介面長得像從 Windows XP 穿越過來,讓大部分一般用戶望而卻步。

其實新手只要會「拖檔案進視窗 + 打一條指令 + 看三行輸出」,就能 80% 鎖定兇手。這篇是站長我自己工作上每次遇到不熟的機型出狀況時,第一個會做的事——分析 minidump 比什麼 SFC、DISM 都有效率,而且給你的答案是證據級的,不是猜的。
🛠️ 實戰步驟
⚠️ 站長警告:本操作涉及系統底層除錯工具,雖然分析 minidump 本身不會改動系統,但本文步驟二涉及調整虛擬記憶體與系統傾印設定,執行失誤可能導致下次 BSOD 時無法產生可分析的 dump 檔。 動手前請務必完成:
- 建立系統還原點(Windows 搜尋「建立還原點」)
- 確認系統碟(通常是 C 槽)可用空間至少 10 GB(WinDbg 解析 symbol 會抓網路 symbol 快取)
- 保留現有
C:\Windows\Minidump\內的 .dmp 檔,不要手動刪除
步驟一:確認 Windows 有在產生 minidump
先確認你的 Windows 真的有把 dump 寫出來。開 檔案總管,在網址列貼:
C:\Windows\Minidump\
按 Enter 後如果看到一堆檔名像 012125-12345-01.dmp 的檔案(日期命名),代表你系統有正確產生 minidump——每一個檔對應一次 BSOD。
如果這個資料夾是空的或根本不存在,代表你的系統傾印設定被關掉了,要補設定:
- 按 Windows + R 輸入
sysdm.cpl開啟系統內容 - 切換到 進階 頁籤 → 「啟動及修復」區塊點 設定
- 「寫入偵錯資訊」下拉選單選 小型記憶體傾印(256 KB)
- 確認「傾印檔案」路徑是
%SystemRoot%\Minidump - 按兩次確定
這組設定後,下次 BSOD 就會在 C:\Windows\Minidump\ 產生一個 .dmp 檔。
💡 為什麼不用 MEMORY.DMP(完整傾印)? 完整傾印或核心傾印(位於
C:\Windows\MEMORY.DMP)檔案動輒幾 GB,包含整個核心記憶體快照,資訊最完整但拖進 WinDbg 解析要 5–15 分鐘。日常除錯 99% 的情境,minidump 就夠用了——它包含 bugcheck code、異常發生時的 call stack、當時載入的模組清單,分析前三件事就夠定位兇手。完整傾印只在追蹤記憶體洩漏、kernel pool 汙染等深度問題才需要。
步驟二:安裝 WinDbg(新版,不是 WinDbg Preview)
2026 年你要裝的是 Microsoft 的新版 WinDbg,它從 Microsoft Store 下載,介面比老 WinDbg 現代很多,跟 2010 年那種 MFC 風格的「WinDbg Classic」完全不同。
最快的安裝方法:
- 按 Windows + S 搜尋
Microsoft Store開啟 Store - 在 Store 搜尋列輸入 WinDbg
- 找到發佈者是 Microsoft Corporation 那一個(圖示是綠色的蟲 bug 圖案),點安裝
如果你像站長一樣偏好 winget:
powershell
winget install Microsoft.WinDbg
安裝完成後在開始選單搜尋 WinDbg(不是 WinDbg Preview、不是 WinDbg Classic)點開即可。
⚠️ 別裝錯了。網路上很多 2023 年以前的教學會叫你去 Windows SDK 裡挑 Debugging Tools for Windows,那個是老版本的 WinDbg Classic,介面是灰底小按鈕,新手看到會想關機。2023 年微軟把新版 WinDbg 從 Preview 轉正並直接放 Store,這才是現在該用的版本。
步驟三:開啟 dump 檔並下 !analyze -v
開啟 WinDbg 後:
- 點左上角 File → Open dump file(或直接按
Ctrl+D) - 導覽到
C:\Windows\Minidump\,選最新日期的那一個 .dmp 檔,按開啟 - WinDbg 會顯示一大段自動載入訊息,最下方會出現一個
0:kd>或*BUSY*之類的提示字元 - 等右下角顯示變成
*BUSY*之外的狀態(第一次會比較久,因為要從 Microsoft Symbol Server 抓 symbol 檔),然後在 Command 欄輸入:
!analyze -v
按 Enter 之後會跑 10 秒到 1 分鐘,然後吐出一長串輸出。
💡 什麼是 symbol server? symbol 檔(.pdb)是微軟編譯 Windows 時產生的「原始碼對照表」,它能把 dump 裡的記憶體位址翻譯回函式名稱。如果不載入 symbol,你看到的只會是一堆十六進位數字。WinDbg 第一次開 dump 會自動從
https://msdl.microsoft.com/download/symbols下載對應版本的 symbol,之後會快取在本機加速。第一次要有耐心,可能花 1–3 分鐘。
如果 symbol 載不到或出現 *** ERROR: Symbol file could not be found,在 Command 欄手動下:
.symfix c:\symbols
.reload
.symfix 會把 symbol 路徑重設成官方伺服器並在本機 c:\symbols 建快取,.reload 重新載入。
步驟四:從輸出中看這三行(最關鍵)
!analyze -v 的輸出會有幾百行,99% 你都可以跳過,只看這三行:
MODULE_NAME: nvlddmkm
IMAGE_NAME: nvlddmkm.sys
FAILURE_BUCKET_ID: 0x133_ISR_nvlddmkm!unknown_function
- MODULE_NAME:真正把系統搞當掉的核心模組(去掉 .sys 副檔名)
- IMAGE_NAME:對應的實體檔名,這是你拿去 Google 搜尋的關鍵字
- FAILURE_BUCKET_ID:微軟 WER 的分類桶,格式通常是
bugcheck代碼_子類型_模組名稱
以上面這個例子來說,nvlddmkm.sys 是 NVIDIA 顯示卡驅動的核心模式驅動,這就是兇手。接下來你知道要做的事是去 NVIDIA 官網抓最新版驅動程式,或降到上一版穩定版,而不是傻傻地跑 SFC。
步驟五:交叉驗證 bugcheck code
輸出最上方還會有一段像這樣:
DPC_WATCHDOG_VIOLATION (133)
The DPC watchdog detected a prolonged run time at an IPL of DISPATCH_LEVEL or above.
Arguments:
Arg1: 0000000000000000
Arg2: 0000000000000501
...
這個 (133) 就是 bugcheck code,對應的是 DPC_WATCHDOG_VIOLATION——意思是某個驅動在 DISPATCH_LEVEL 或更高權限層級待太久,違反了 DPC 看門狗(通常預設閾值 20 秒)。搭配步驟四查到的 nvlddmkm.sys,你得到的完整因果鏈是:NVIDIA 顯示卡驅動在某個中斷處理常式裡卡太久,觸發 DPC 看門狗,核心主動殺掉系統避免整機凍死。
常見 bugcheck code 對照表(記起來幾個就夠用):
| Bugcheck | 代碼 | 常見肇事層級 |
|---|---|---|
| IRQL_NOT_LESS_OR_EQUAL | 0xA | 驅動程式(存取了錯誤 IRQL 的記憶體) |
| PAGE_FAULT_IN_NONPAGED_AREA | 0x50 | RAM 硬體 或 驅動指標錯誤 |
| DPC_WATCHDOG_VIOLATION | 0x133 | 驅動(常見:顯卡、SSD firmware) |
| KERNEL_SECURITY_CHECK_FAILURE | 0x139 | 驅動(stack buffer overrun)或 RAM |
| WHEA_UNCORRECTABLE_ERROR | 0x124 | 純硬體(CPU / PCIe / RAM 錯誤) |
| CRITICAL_PROCESS_DIED | 0xEF | 系統檔案損毀 或 使用者模式關鍵程序崩潰 |
| MEMORY_MANAGEMENT | 0x1A | RAM 硬體 或 頁面表管理錯誤 |
🔬 底層機制:這個錯誤訊號從哪裡來?
這段是 A5 類文章的靈魂,理解這個你以後看 dump 就不會只會複製貼上 Google。
當 Windows 核心發生致命錯誤時,走的是這一條路徑:
- 錯誤發生:某個 kernel 模式的程式碼(可能是核心本身、可能是第三方驅動)存取了不該存取的記憶體、或在錯誤的 IRQL 等級做了不允許的動作
- 例外觸發:CPU 的異常處理單元(對 x64 來說就是 IDT)跳到對應的 interrupt handler
- 核心判定不可恢復:
nt!KeBugCheckEx這個函式被呼叫,帶著 bugcheck code 與最多四個 parameter - 系統停機準備:核心停止所有 CPU 核心(IPI broadcast),把目前的 CPU 狀態、異常發生點的 stack、載入的模組清單、最近的 DPC queue 等資訊凍結成一份快照
- 寫入傾印:根據你在系統內容設的「寫入偵錯資訊」層級,這份快照會被寫到
C:\Windows\MEMORY.DMP或C:\Windows\Minidump\*.dmp - 顯示藍色畫面:最後才是你看到的 BSOD 畫面,此時系統已經完全停機
- 下次開機時搬移:系統下次開機時,Windows 會把剛才寫出的傾印檔收整並觸發 Windows Error Reporting(WER)回報給微軟
重點來了:!analyze -v 做的事,就是讀取這份快照,從 call stack 最上方那個「觸發 bugcheck 的函式」往下追蹤,找到呼叫它的是誰。這就是為什麼 MODULE_NAME 那麼重要——那是 call stack 上離崩潰點最近的第三方模組(核心自己的 nt! 函式會被自動過濾掉)。
這也解釋了為什麼有時候 MODULE_NAME 會指向看似無辜的模組(例如 ntoskrnl.exe):call stack 最上方的函式不一定是真兇。真兇可能是先污染了記憶體、幾個 DPC 後才引爆的某個驅動。這時候要改看更完整的 k(列 stack)或 lmnt m <模組名>(列模組版本)指令,但這已經超出本文新手入門範圍。
這個設計也說明了 Windows 藍畫面不是軟體「亂當機」,而是一個主動保護機制:核心發現自己已經處於不穩定狀態,為了避免資料在無法預期的情況下被寫入磁碟造成更大損失,主動停機並保留 forensic 證據。Linux 的 kernel panic、macOS 的 kernel panic diagnostic report、iOS 的 panic log,走的都是同一套哲學——出事了就停下來並留下黑盒子。
✅ 驗證修復結果
找到兇手之後,別急著慶祝。正確的驗證流程是:
- 記錄 MODULE_NAME 與 bugcheck code,存在記事本
- 根據 MODULE_NAME 執行對應處置(更新驅動 / 降版驅動 / 換硬體 / memtest)
- 保留原始 .dmp 檔(複製到另一個資料夾,例如
D:\BSOD_archive\),不要讓它被新的 dump 覆蓋——Windows 預設只保留最近幾個 minidump - 正常使用系統至少兩週,期間不要急著做其他系統變更(這樣出事才能歸因)
- 兩週後再次檢查
C:\Windows\Minidump\,若沒有新的 dump 檔產生,才算真正修復
特別提醒:如果你是第一次就中獎 WHEA_UNCORRECTABLE_ERROR (0x124),這個 bugcheck 99% 是純硬體錯誤(CPU 機器檢查例外),軟體層面怎麼更新驅動都沒用。該做的是把機器送修、換 RAM 或檢查 PSU,別浪費時間在 Windows 設定上。
💡 總結:踩雷經驗與進階方向
站長我自己是 2026 年 3 月底在一台 Intel Core Ultra 7 258V 的測試機上追一個偶發的 DPC_WATCHDOG_VIOLATION,用這套 minidump 流程在 第二份 dump 就鎖定兇手是 Intel Killer Wi-Fi 驅動的某個舊版本——當下直接從 Intel 官網抓最新驅動裝回去,連續觀察了 14 天沒再跳,結案。如果當時照網路流程跑 SFC + DISM + memtest + 重灌,至少要浪費一個下午的時間。
這套 WinDbg + !analyze -v 流程最大的價值,是把「感覺」變成「證據」。傳統新手看到 BSOD 會直覺認為「哦,最近裝了 X 軟體,一定是它害的」,然後開始亂拆。但真兇常常是你完全沒想到的——一支兩年前裝的週邊驅動、一張主機板內建音效晶片、甚至 Windows Update 推的某個累積更新。沒有 minidump 當證據,你的直覺就是賭博。
幾個新手最常踩的坑站長幫你列出來:
第一坑:拿到 MODULE_NAME 就信以為真,不看 FAILURE_BUCKET_ID。舉例來說,很多 0x124 WHEA 錯誤的 MODULE_NAME 會顯示 AuthenticAMD 或 GenuineIntel 之類的 CPU vendor 字串,這不是「有一個檔案叫 AuthenticAMD」,而是硬體錯誤被歸類到 CPU vendor 桶裡,真正該做的是機器送修,不是去 Google 什麼 AuthenticAMD.sys。
第二坑:只看一份 dump 就下結論。偶發性 BSOD 通常要累積 3–5 份 dump 再比對,看 MODULE_NAME 是不是同一個,才能確認真兇。如果每次都是不同的 MODULE_NAME 且 bugcheck code 都不一樣,這九成是硬體問題(常見 RAM 或 PSU 不穩),該做 memtest 與換電源檢測,而不是抓軟體。
第三坑:忽略 .reload /f 強制重載 symbol 的重要性。第一次分析 dump 如果網路不穩,symbol 只下載了一半,分析出來的函式名稱會全錯。這時候下 .reload /f 強制重新下載全部 symbol 再跑一次 !analyze -v,結果會完全不同。
進階方向:如果你對 WinDbg 上癮了,下一步該學 k(列 call stack)、lmnt m *(列載入模組)、!process(看程序)、!drvobj(看驅動物件)這幾條指令,這些能讓你從「分析 80% 的 BSOD」進階到「分析 95%」。剩下那 5% 是需要反組譯跟看原始碼的 kernel 開發者等級,不用擔心,一般使用者這輩子碰不到。
❓ 常見問題
Q:我把 .dmp 檔拖進 WinDbg 後顯示「bugcheck code 0xc0000005」之類的,這是什麼意思?
那不是 bugcheck code,那是 WinDbg 本身讀檔出錯的 exception code。通常代表 .dmp 檔損毀或檔案還沒完整寫入(例如你在系統剛 BSOD 重開機後就立刻複製檔案)。解法:等系統正常運作 5 分鐘後再從 C:\Windows\Minidump\ 取檔,或者改用新的 BSOD 產生的 dump。
Q:我的 C:\Windows\Minidump\ 是空的,但我明明有遇到 BSOD,為什麼?
有幾個可能:(1)傾印設定被關掉了——回步驟一重設;(2)系統碟空間不足,核心無法寫入傾印;(3)頁面檔被手動關掉了——小型傾印需要系統碟上有頁面檔才能在重開機時把記憶體快照搬出來,請確認 C 槽頁面檔是「系統管理的大小」;(4)某些極端的 BSOD(例如核心在寫檔過程就掛掉)可能來不及寫出 dump。
Q:用 WhoCrashed、BlueScreenView 這種 GUI 工具不是更簡單嗎?
對新手來說確實更簡單,這些工具本質上是 WinDbg 的簡化版前端,會自動跑類似 !analyze 的指令並用 GUI 呈現結果。問題是它們的分析深度比 !analyze -v 淺,尤其 NirSoft BlueScreenView 已經好幾年沒更新,對新版 bugcheck code 支援不完整。學會 WinDbg 是一次投資長期受用,你得到的是官方原廠工具的完整能力。
Q:Windows Defender 跳出來說 WinDbg 有可疑行為,安全嗎?
安全。WinDbg 會掛載 symbol 檔並操作記憶體位址,這種行為模式在少數防毒軟體眼裡會被誤判。直接從 Microsoft Store 或 winget 安裝的版本都有微軟數位簽章,可以放心把它加入 Defender 白名單。但要拒絕從任何非官方網站下載的「破解版 WinDbg」或「簡體中文漢化版」——這類版本常被植入後門。
📎 參考資料來源
- 📖 Get started with Windows debugging — Microsoft Learn(查詢日期:2026-04-14)
- 📖 Debug Universal Drivers – Step by Step Lab (Sysvad Kernel Mode) — Microsoft Learn(查詢日期:2026-04-14)
- 📖 Bug Check Code Reference — Microsoft Learn(查詢日期:2026-04-14)
- 📖 Install WinDbg from the Microsoft Store — Microsoft Learn(查詢日期:2026-04-14)
- 📖 Configure Windows to Create Dump Files on BSOD — Microsoft Support(查詢日期:2026-04-14)