Windows Troubleshooting 104: Servis hang ve crash sorunları


Örnek olarak print spooler i verelim. Çikti alinamiyor ve nedeni olarak spooler servisin durmus oldugunu 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 aslinda sadece bir yöntemi vardir. O da servis, yani çalistirdigi .exe crash olurken onun process dumpini almaktir. Böylece neden crash oldugunu görebiliriz.

Bunu bir debugger ile sorunlu processe attach olarak yapabiliriz. Bu debugger da örnegin 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 i default debugger yapariz. Sonra da örnegin
adplus.vbs -crash -quiet -pn spoolsv.exe -o c:\temp
komutu ile spooler a veya istedigimiz herhangi bir processe attach olabiliriz.

Process crash oldugunda adplus c:\temp altinda olusturdugu ‘crash’ klasörüne o processin dumpini (.dmp) yazar. Örnekte c:\temp verilmistir, bu elbette herhangi önceden yaratilmis bir lokasyon olabilir.

Komutta elbette sadece Debugging tools for Windows un kurulu oldugu lokasyonda çalisir.

Bazen ama servis crash olmaz. Örnegin yine çikti sorunu olusur, ama bu sefer spooler i restart ederek sorunu geçici çözmüs oluruz. Yine yukaridaki adimlari uyarlayabiliriz. Genel olarak adplus bir sorun fark ettiginde en azindan o an processin dumpini aliyor olabilir. Ise yaramaz ise, ayni komutu -crash yerine -hang ile çalistirabiliriz. Hang opsiyonu ile adplus aninda o processin dumpini olusturur.

Ancak bir processin hang dumpini alabilmek için adplus a ihtiyaciniz yoktur. Task manager da herhangi bir processe sag tiklayip ‘’create dump file’’ ile aninda process dumpini alabilir siniz.

En önemlisi ama veri sorun anindan olmali. Sorundan önce veya sonra alinmis bir process/user mode dump yardimci olamaz.

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

Basar Güner
Sr. Support Engineer, Microsoft


Comments (0)