ProcDump:捕獲進程轉儲以排查 CPU 使用率飆升和崩潰問題

ProcDump是 Microsoft Sysinternals 的一款命令列實用程序,用於捕獲 Windows 進程記憶體轉儲,以便排查 CPU 使用率飆升、系統崩潰或應用程式停止回應等問題。開發人員和系統管理員可以使用產生的轉儲.dmp檔案來檢查問題發生時進程的運作。它提供的是診斷快照,而不是持續的 CPU 使用率日誌。

微軟的文件(2026年10月15日更新)列出了ProcDump v12.02,並支援Windows 11及更高版本以及Windows Server 2016及更高版本。以下步驟使用Windows命令提示字元。

1. 下載並準備 ProcDump

  1. 從微軟 Sysinternals ProcDump 官方頁面下載 ZIP 檔案。 TechNet上的原始連結會重定向到該頁面。
  2. 將其解壓縮到方便的資料夾,例如C:\Tools\ProcDump. 該獨立可執行檔沒有傳統的安裝程式。
  3. 建立一個可寫入的輸出資料夾,例如C:\Dumps`/etc/output.txt`,然後開啟命令提示字元。切換到解壓縮後的目錄:
cd /d C:\Tools\ProcDump
procdump.exe -?

help 指令會顯示可用的開關。如果首次運行時出現 Sysinternals 授權協議,請在繼續操作前閱讀並接受該協議。您可能需要提升權限的命令提示字元來擷取某些受保護或權限較高的進程,但請僅使用您實際需要的存取權限。

Windows 11 檔案總管在 C:\Tools\ProcDump 資料夾中顯示 procdump.exe 和 procdump64.exe
提取的 ProcDump 資料夾範例,其中包含命令列可執行檔。

2. 建立正在運行進程的轉儲

開啟記事本,然後輸入:

procdump.exe notepad C:\Dumps\notepad.dmp

這會立即請求產生轉儲檔案並將其寫入指定的檔案。如果沒有指定轉儲類型,ProcDump 將使用其預設的迷你轉儲格式(-mm)。如果需要收集完整的內存上下文信息,請添加-ma:

procdump.exe -ma notepad C:\Dumps\notepad-full.dmp

您可以提供進程名稱、服務名稱或數位進程 ID (PID)。如果只有一個符合的進程,則使用名稱效果最佳。像 Firefox 這樣的瀏覽器通常會運行多個進程,因此請使用任務管理器「詳細資料」標籤中顯示的 PID 來選擇所需的進程:

procdump.exe 1234 C:\Dumps\firefox.dmp

請替換1234為實際的PID;這只是一個範例。

命令提示字元執行 procdump notepad 命令,並顯示記事本進程的 minidump 檔案名稱。
基本的 ProcDump 命令可以捕獲正在運行的進程的快照。

3. 當 CPU 使用率飆升時捕獲轉儲文件

對於間歇性高 CPU 使用率的情況,讓 ProcDump 監控進程,而不是猜測何時捕獲它:

procdump.exe -n 3 -s 5 -c 20 notepad C:\Dumps

此處-c 20設定進程 CPU 使用率閾值為 20%,-s 5要求進程連續五秒保持高於該閾值,並將-n 3收集次數限制為三次轉儲。請將 `<target_processor_pid>` 替換notepad為您的目標進程或 PID。此命令在等待符合條件的事件發生期間可以保持運作狀態。

用於Ctrl+C在完成監控後停止監控。較低的閾值可能會產生不必要的文件;請選擇一個能夠代表您正在調查的行為的值。此-c開關控制何時產生轉儲文件,而不是將 CPU 歷史記錄報告插入轉儲文件。

命令提示字元顯示 ProcDump CPU 閾值命令,設定了三次轉儲、五秒鐘的間隔以及 20% 的 CPU 觸發閾值。
CPU觸發的收集可以等待進程超過選定的閾值。

4. 尋找並分析DMP文件

捕獲完成後打開輸出資料夾。如果您指定了檔案名,ProcDump 將使用該檔案名稱;否則,其標準檔案名稱包含進程名稱和時間戳,例如 `.procdump.exe` PROCESSNAME_YYMMDD_HHMMSS.dmp。檢查命令提示字元輸出中的錯誤訊息以及報告的目標位置。

Windows 檔案總管在 ProcDump 執行檔旁邊顯示了一個副檔名為 .dmp 的記事本轉儲檔。
產生的 DMP 檔案可以使用偵錯器進行檢查,而不能使用文字編輯器進行檢查。

該.dmp文件是二進位調試數據,並非可在記事本中閱讀的文檔。請使用WinDbg或其他相容的偵錯器打開它,並儘可能使用匹配的應用程式符號。微軟的使用者模式轉儲分析指南解釋瞭如何載入轉儲檔案並配置符號。捕獲的堆疊和記憶體資訊可能有助於識別熱點執行緒、異常或阻塞操作,但轉儲檔案本身並不能證明根本原因。

其他有用的 ProcDump 觸發器

命令何時使用
procdump.exe -h notepad當視窗停止回應訊息至少五秒鐘時進行捕獲。
procdump.exe -ma -e app.exe C:\Dumps對所選應用程式中未處理的異常進行完整轉儲。
procdump.exe -m 500 app.exe C:\Dumps當進程達到 500 MB 記憶體提交閾值時觸發。
procdump.exe -e -w app.exe等待進程啟動,然後監控其是否有未處理的異常。

這些開關還有比這裡顯示的更多選項;在生產系統上編寫捕獲腳本之前,請查閱官方語法和範例。

常見問題及安全預防措施

  • 沒有出現轉儲:請確認目標進程正在運行,PID 是否正確,目標是否可寫,以及是否實際發生了任何 CPU 或異常觸發。
  • 存取被拒絕:請檢查進程權限;僅在獲得授權且必要時才執行提升權限的終端。
  • 轉儲檔案收集會中斷應用程式:捕獲記憶體可能會短暫暫停進程。微軟的-r克隆選項可以減少在受支援系統上的中斷,但會增加資源開銷,並且不能保證完全不受影響。
  • 文件過大或包含敏感資訊:完整轉儲檔案(-ma)可能包含密碼、個人資料和其他記憶體內容。請限制訪問,使用經批准的儲存介質,並僅透過安全的支援管道共享轉儲檔案。

首先產生預設的小型轉儲文件,僅在調查需要時才切換到完整轉儲,並儘可能明確觸發條件。這樣,開發人員就能獲得有用的系統快照,而無需收集不必要的敏感資料。

留下評論

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher Studio 將照片轉換成繪畫、鉛筆素描或卡通。學習如何選擇效果、調整預覽、保存作品。

使用音訊標識符詳細分析和識別音訊文件

使用音訊標識符詳細分析和識別音訊文件

了解音訊標識符揭示的位元率、編碼器和標籤訊息,其傳統工作流程如何運作,以及當前哪些工具可以檢查文件或識別歌曲。

我的照片索引:一款適用於 Windows 的開源照片管理器。

我的照片索引:一款適用於 Windows 的開源照片管理器。

My Photo Index 是一款舊版 Windows 相片目錄管理工具,用於標記、評分和瀏覽本機影像。請查看其文件功能、相容性限制以及一個維護良好的替代方案。

使用屬性變更器變更檔案和資料夾屬性、日期和時間

使用屬性變更器變更檔案和資料夾屬性、日期和時間

學習如何使用屬性變更器安全地編輯 Windows 檔案屬性和時間戳記、更新 JPEG EXIF 照片日期以及預覽批次變更。

如何在 Windows 10 中為每個顯示器設定不同的桌布

如何在 Windows 10 中為每個顯示器設定不同的桌布

為每個 Windows 10 顯示器設定單獨的壁紙,識別顯示器,調整影像適應度,並解決缺少顯示器選擇的問題。

pViewer:一款極簡圖像檢視器和漫畫閱讀器

pViewer:一款極簡圖像檢視器和漫畫閱讀器

了解 pViewer 的功能、照片和漫畫模式的工作原理、應該下載哪個 Windows 版本,以及舊版和重寫版之間的差異。

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

設定 Windows 7 或 8 投影片放映,建立一個小型 VBScript 快捷方式,並指派鍵盤熱鍵來切換到下一張桌布。

NeoDownloader:設定參數並從網站批量下載圖片

NeoDownloader:設定參數並從網站批量下載圖片

學習如何建立 NeoDownloader 專案、選擇爬取範圍、設定映像過濾器和目標位置,以及查看批次下載。

XnConvert:批次應用特效和轉換影像格式

XnConvert:批次應用特效和轉換影像格式

使用 XnConvert 可以批次套用特效、調整照片大小和轉換影像格式。選擇輸出設定、預覽編輯效果並保護您的原始文件。

使用 ManicTime 追蹤工作時間和電腦使用情況

使用 ManicTime 追蹤工作時間和電腦使用情況

了解 ManicTime 如何追蹤應用程式使用情況、活躍時間和空閒時間以及文檔,然後將您的活動歷史記錄轉換為專案標籤和時間表。