Ostatnio w komentarzu do posta o IE8 crash pojawił się komentarz o tym, czy możliwe jest takie skonfigurowanie systemu, aby automatycznie wykonywał się dump procesu, który przedwcześnie zakończył swój żywot w systemie. Oczywiście da się coś takiego osiągnąć i w tym poście pokaże jak.

Gdy proces umiera…

Crash
To, co dzieje się w systemie po tym jak aplikacja umiera nie jest na sztywno zaszyte – wręcz przeciwnie bardzo konfigurowalne. Za to, co nam się uruchomi gdy aplikacja przestanie działać odpowiada klucz w rejestrze a dokładniej:
64 bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug
32 bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

W polu Debugger, możemy wpisać nasz debugger, który może zostać uruchomiony w przypadku wystąpienia crashu aplikacji. Jeśli chcemy, aby były wykonywane zrzuty aplikacji w momencie, gdy przestanie ona działać, wystarczy w polu tym wpisać:
Path\WinDbg.exe” -p %ld –c “.dump /ma /u \CrashDump.dmp;q” -e %ld –g

Dzięki takiemu ustawieniu dump procesu zostanie zrzucony do pliku, a dodanie ;q spowoduje, że WinDbg zakończy działanie. Więcej informacji odnośnie Postmortem debugging można znaleźć w Enabling Postomortem Debugging. Jak prezentuje się całość:

Unable to display content. Adobe Flash is required.

Miłego crashowania!