使用Debug Tools對不明原因停止的服務進行除錯作業
本篇將以Print Spooler這個服務來簡單教學要如何使用Debug Tools來除錯
我這邊的案例是在服務啟動後,過一陣子會自動Crash掉
首先需要先去微軟Download and Install Debugging Tools for Windows
請從支援清單中,選取正確的Debug Tools版本
如果您的Server是無法上網的,您也可以先安裝在可上網的Client端
將Debug Tools從Windows SDK中下載出來,再將安裝檔放到Server上執行
並不需要安裝.NET Framework 4.0
接著就可以將這兩個檔案,依照位元版本去安裝到有問題到Server上
預設路徑會在C:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows底下
當在Server上安裝完畢之後,預設的路徑會在C:\Program Files\Debugging Tools for Windows (x64)底下
如果是x86版本,將是C:\Program Files\Debugging Tools for Windows (x86)
透過cmd將目錄切換到C:\Program Files\Debugging Tools for Windows(x86)底下
輸入Cscript ADPlus_old.vbs –crash –pn spoolsv.exe
代表我要查的Process Name是spoolsv,查的是Crash
從下圖可以看到,錄到的PID是3980就是了
接著就會產生Dump以及一些Report,跟當時的Process List
接著打開Log檔,就可以看到Crash的原因,如下圖,是由HpTCPMon.dll造成的
可以試著將該Dll Rename,在試著啟動服務,看看這個Dll是否為非必要的3rd Party的Driver
在這個案例中,我是Rename完之後,重啟就成功了,只是該Print會消失在Print List中
重新安裝就可以了。