Örnek olarak print spooler ı verelim. Çıktı alınamıyor ve nedeni olarak spooler servisin durmuş olduğunu görüyorsunuz. Application event log da muhtemelen event id: 1000 görebiliriz: application crash.

Burada sorunun nedenine dair hiç fikir yürütemiyorsak, çözmenin aslında sadece bir yöntemi vardır. O da servis, yani çalıştırdığı .exe crash olurken onun process dumpını almaktır. Böylece neden crash olduğunu görebiliriz.

Bunu bir debugger ile sorunlu processe attach olarak yapabiliriz. Bu debugger da örneğin adplus olabilir.


Adplus, Debugging tools for Windows beraberinde gelir:
http://msdl.microsoft.com/download/symbols/debuggers/dbg_amd64_6.11.1.404.msi
http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.11.1.404.msi

Kurduktan sonra
cscript /h:wscript
komutu ile adplus ı default debugger yaparız. Sonra da örneğin
adplus.vbs -crash -quiet -pn spoolsv.exe -o c:\temp
komutu ile spooler a veya istediğimiz herhangi bir processe attach olabiliriz.

Process crash olduğunda adplus c:\temp altında oluşturduğu ‘crash’ klasörüne o processin dumpını (.dmp) yazar. Örnekte c:\temp verilmiştir, bu elbette herhangi önceden yaratılmış bir lokasyon olabilir.

Komutta elbette sadece Debugging tools for Windows un kurulu olduğu lokasyonda çalışır.


Bazen ama servis crash olmaz. Örneğin yine çıktı sorunu oluşur, ama bu sefer spooler ı restart ederek sorunu geçici çözmüş oluruz. Yine yukarıdaki adımları uyarlayabiliriz. Genel olarak adplus bir sorun fark ettiğinde en azından o an processin dumpını alıyor olabilir. İşe yaramaz ise, aynı komutu -crash yerine -hang ile çalıştırabiliriz. Hang opsiyonu ile adplus anında o processin dumpını oluşturur.

Ancak bir processin hang dumpını alabilmek için adplus a ihtiyacınız yoktur. Task manager da herhangi bir processe sağ tıklayıp ‘’create dump file’’ ile anında process dumpını alabilir siniz.

En önemlisi ama veri sorun anından olmalı. Sorundan önce veya sonra alınmış bir process/user mode dump yardımcı olamaz.


Daha detaylı bilgileri burada bulabilirsiniz: http://support.microsoft.com/kb/286350 


Başar Güner
Sr. Support Engineer, Microsoft