- http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-9-ProcDump
- http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-10-ProcDump-Triggers
- http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-11-ProcDump-Windows-8--Process-Monitor
procdump.exe -? -eTrzeba pamiętać o podaniu nazwy pliku gdzie dump zostanie zrzucony, jakoś przykłady o tym nie wspominają, a komunikat zwrotny nie jest intuicyjny. Kilka użytecznych przełączników:
- -mp, -ma - domyślnie procdump, tworzy mini-dump, czasami jest to wystarczające, ale jeżeli będzie potrzebna nam większa ilość pamięci, można skorzystać z opcji Mini-Plus (-mp), lub do zrzutu całej pamięci (-ma)
- -r - opcja tworzy klon pamięci, dzięki czemu proces tworzenia dumpa, nie przerywa działania oryginalnego programu
- -w - jeżeli proces jeszcze nie jest odpalony, poczekaj na niego
- -e - zrzuć dump w razie wystąpienie wyjątku. Domyślnie zadziała, gdy nie obsłużona zostanie druga szansa na złapanie wyjątku. Np. program zgłosi wyjątku access violation, na który system nie będzie umiał zareagować, więc nastąpi crash aplikacji. W ten sposób w dump-ie pojawi się miejsce, z którego pierwszy wyjątek został złapany, a nie gdzie został rzucony. Aby reagować na pierwsze pojawienie się wyjątku można skorzystać z opcji "-e 1"
- -f - filter na wyjątki i debug logi
#include "stdafx.h" #include <iostream> int main() { std::cout << "Hello crash" << std::endl; int *ptr = new((int *)0xdeadbeaf) int(44); return 0; }
C:\userdata\>procdump.exe -mp -e 1 -f "ACCESS_VIOLATION" -w ConsoleCrash.exe crash.dmp ProcDump v7.1 - Writes process dump files Copyright (C) 2009-2014 Mark Russinovich Sysinternals - www.sysinternals.com With contributions from Andrew Richards Waiting for process named ConsoleCrash.exe... Process: ConsoleCrash.exe (3344) CPU threshold: n/a Performance counter: n/a Commit threshold: n/a Threshold seconds: 10 Hung window check: Disabled Log debug strings: Disabled Exception monitor: First Chance+Unhandled Exception filter: *ACCESS_VIOLATION* Terminate monitor: Disabled Cloning type: Disabled Concurrent limit: n/a Avoid outage: n/a Number of dumps: 1 Dump folder: C:\userdata\ Dump filename/mask: crash Press Ctrl-C to end monitoring without terminating the process. [22:33:05] Exception: C0000005.ACCESS_VIOLATION [22:33:05] Dump 1 initiated: C:\userdata\crash.dmp [22:33:06] Dump 1 complete: 1 MB written in 0.5 seconds [22:33:06] Waiting for dump to complete... [22:33:07] Dump count reached.