Windows Troubleshooting 工具與資源
這篇文章主要介紹 Windows troubleshooting 時的一些工具與資源,
在進行軟體測試的過程中,我們都會有這樣的經驗:
- Application 異常終止
- 資源耗用越來越多
- 應用程式越跑越慢,不知道為什麼
- 安裝失敗
- 應用程式很忙,沒有反應,不知道在忙什麼?
- 電腦整體系統資源很忙,不確定有什麼比較有效率的方式收集相關資訊?
- Crash & Blue screen
推薦工具書
首先,先推薦幾本 Windows troubleshooting 的工具書,也是 Windows internals 的聖經
這幾本書建議閱讀的順序如下:
1. Windows Sysinternals Administrator’s Reference
這本書主要根據 Sysinternals 的工具及,將每一個工具的使用方法,
以及相關 Windows的知識做介紹 ,
透過每一個不同的工具,來了解 Windows 內部運作
http://technet.microsoft.com/en-us/sysinternals
2. Advanced Windows Debugging
這本書舉了許多實際的個案讓讀者可以熟悉 Memory leak.. Hang 等狀況的處理,
並且相關的除錯工具,也提供個案 EXE,供上機實做了解
3. Windows internals part 1/part 2
這兩本書主要說的是 Windows Internals 架構,分為上下兩冊
如果對於 windows 內部運作有興趣進一步了解,可以參考這兩本書。
4. Inside Windows debugging
這本書的 debugging 主要指的是 Memory Dump 的 Kernel mode debug
也舉了相關 Crash dump 的例子,用 Windbg 的方式導引讀者,如何解析 crash 的狀況
Troubleshooting 的臨場狀況
與客戶進行 Troubleshooting 有一定程度的困難與挑戰,
這些挑戰包含非技術上的挑戰,舉幾個筆者遇過情境
- 語言的問題
- 問題無法重現
- 客戶電腦無法直接存取的權限
- 作業程序上的問題
Case study
如果英文閱讀還可以的話,
建議可以到 Mark (Windows internals 與 SysInternals 的作者) 的 blog,
這個 blog 有許多個案討論,說明如何用 process monitor 解決許多 Windows 的問題
http://technet.microsoft.com/en-us/sysinternals/bb963890.aspx
除了 SysInternals之外
除了 SysInternals工具集之外,還有沒有其他的選擇呢?
筆者,推薦另外一個工具集 Nirsoft Launcher, 類似 SysInternals
關於 Blue Screen
電腦當機強迫重新開機時,常見的藍色畫面
針對這印的藍色畫面,一般的分析方式不外乎是用 Windbg 做 kernel debug
有沒有比較簡單的方式分析呢?
這邊推薦一個工具 BlueScreenView
這個工具直接執行之後,它自動會讀取最近的 crash dump,並且做初步的分析
應用程式沒有反應怎麼辦?
這也是另一個常見的現象,應用程式完全沒有反應,通常有幾種原因造成:
- 無窮迴圈
- 資源等待,暫時無法讀取到所需要的資源
- 系統資源耗盡,例如記憶體不足,耗用過多的 CPU等
這邊介紹另外一個好用的分析工具,”What is Hang”
這個工具執行之後,選取要分析的 process
就會針對 Hang 的原因 “自動” 做初步的分析
應用程式異常終止
這類的情況通常因為應用程式沒有針對例外狀況做妥善的處理,例如:
- 10 / 0 (divide by 0)
- 讀取不存在的檔案
- 輸入值超過 buffer
這類的錯誤訊息,通常會看到下列畫面
這邊推薦一個工具,可以針對這樣的錯誤做自動的分析
“WinCrashReport”
Download WinCrashReport 32-bit
Windows 系統穩定性分析
另外,介紹一個 Windows 內建的工具 “Windows Reliability Monitor”
這個工具可以針對過去歷史以來,發生過的 system/Application crash 分析
系統資源耗用狀況
另外介紹一個也是 Windows 內建的工具 Resource Monitor,
這個工具可以針對目前所有執行的 process 耗用的資源分析
- CPU
- Memory
- Network
- Disk