使用Debug Tools對不明原因停止的服務進行除錯作業

使用Debug Tools對不明原因停止的服務進行除錯作業

本篇將以Print Spooler這個服務來簡單教學要如何使用Debug Tools來除錯

我這邊的案例是在服務啟動後,過一陣子會自動Crash掉

1

首先需要先去微軟Download and Install Debugging Tools for Windows

請從支援清單中,選取正確的Debug Tools版本

如果您的Server是無法上網的,您也可以先安裝在可上網的Client端

將Debug Tools從Windows SDK中下載出來,再將安裝檔放到Server上執行

並不需要安裝.NET Framework 4.0

6

接著就可以將這兩個檔案,依照位元版本去安裝到有問題到Server上

預設路徑會在C:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows底下

7

當在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就是了

21

接著就會產生Dump以及一些Report,跟當時的Process List

31

接著打開Log檔,就可以看到Crash的原因,如下圖,是由HpTCPMon.dll造成的

 

5

可以試著將該Dll Rename,在試著啟動服務,看看這個Dll是否為非必要的3rd Party的Driver

3

在這個案例中,我是Rename完之後,重啟就成功了,只是該Print會消失在Print List中

重新安裝就可以了。