您好,
當 Windows 應用程式凍結且未產生崩潰報告時,請在應用程式無回應時擷取進程轉儲。開啟任務管理器,導覽至“詳細資料”,以滑鼠右鍵按一下受影響的進程,然後選擇“建立轉儲檔案”;Windows 將顯示已儲存的檔案路徑。或者,下載「Microsoft Sysinternals ProcDump」,並以管理員身分執行命令提示字元。執行“procdump.exe -ma <PID> C:\Dumps\app_hang.dmp”,確保目標資料夾存在。若要在視窗停止回應時自動擷取轉儲,請使用“procdump.exe -ma -h <ProcessName.exe> C:\Dumps”。間隔幾秒鐘收集兩到三個轉儲,以識別持續阻塞的線程。在 WinDbg.
中開啟轉儲文件,並執行 .symfix、.reload、!analyze -hang 和 ~* kb 指令來檢查執行緒狀態和呼叫堆疊。尋找循環鎖定依賴、臨界區等待、RPC 或 COM 呼叫以及阻塞的網路或檔案操作。對於 .NET 應用程序,請使用 SOS 命令(例如 !threads 和 !syncblk)來調查託管執行緒阻塞和同步爭用。將轉儲結果與應用程式日誌和 Windows 事件檢視器進行對比,並保護轉儲文件,因為它們可能包含敏感資訊。
希望這些資訊對您有所幫助。如果此答案能幫助您更深入地了解問題,請採納。如果您還有其他問題,歡迎留言。祝您一切順利!
HP.