Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Mark Russinovich i Andrew Richards
Opublikowano: 7 maja 2026 r.
plik ProcDump(1,2 MB)
Pobierz narzędzie ProcDump dla systemu Linux (GitHub)
Pobierz narzędzie ProcDump dla komputerów Mac (GitHub)
Utworzono za pomocą funkcji ZoomIt
Wprowadzenie
ProcDump to narzędzie wiersza polecenia, którego głównym celem jest monitorowanie aplikacji pod kątem skoków użycia procesora CPU i generowanie zrzutów awaryjnych podczas skoku, którego administrator lub deweloper może użyć do określenia przyczyny skoku. ProcDump obejmuje również monitorowanie zawieszających się okien (przy użyciu tej samej definicji zawieszającego się okna, jaką stosują system Windows oraz Menedżer zadań), monitorowanie nieobsługiwanych wyjątków, a także może generować zrzuty na podstawie wartości liczników wydajności systemu. Może również służyć jako ogólne narzędzie zrzutu procesu, które można osadzić w innych skryptach.
Korzystanie z narzędzia ProcDump
Przechwytywanie użycia:
procdump.exe [-mm] [-ma] [-mt] [-mp] [-mc <Mask>] [-md <Callback_DLL>] [-mk]
[-n <Count>]
[-s <Seconds>]
[-c|-cl <CPU_Usage> [-u]]
[-m|-ml <Commit_Usage>]
[-p|-pl <Counter> <Threshold>]
[-h]
[-e [1] [-g] [-b] [-ld] [-ud] [-ct] [-et]]
[-l]
[-t]
[-f <Include_Filter>, ...]
[-fx <Exclude_Filter>, ...]
[-dc <Comment>]
[-o]
[-r [1..5] [-a]]
[-at <Timeout>]
[-wer]
[-64]
{
{{[-w] <Process_Name> | <Service_Name> | <PID>} [<Dump_File> | <Dump_Folder>]}
|
{-x <Dump_Folder> <Image_File> [Argument, ...]}
}
Instrukcja instalacji:
procdump.exe -i [Dump_Folder]
[-mm] [-ma] [-mt] [-mp] [-mc <Mask>] [-md <Callback_DLL>] [-mk]
[-r]
[-at <Timeout>]
[-k]
[-wer]
Odinstalowywanie użycia:
procdump.exe -u
Typy zrzutów:
| Typ zrzutu | opis |
|---|---|
| -Mm | Napisz plik zrzutu pamięci (mini). (domyślne) — Obejmuje bezpośrednio i pośrednio przywołaną pamięć (stosy i odwołania do nich). — obejmuje wszystkie metadane (proces, wątek, moduł, uchwyt, przestrzeń adresowa itp.). |
| -ma | Utwórz pełny plik zrzutu. — Obejmuje całą pamięć (pamięć obrazu, pamięć mapowaną i pamięć prywatną). — obejmuje wszystkie metadane (proces, wątek, moduł, uchwyt, przestrzeń adresowa itp.). |
| -mt | Napisz plik zrzutu "Triage". — Zawiera pamięć, do której odwołano się bezpośrednio (stosy). — Obejmuje ograniczone metadane (proces, wątek, moduł i uchwyt). - Próba usunięcia poufnych informacji nie jest gwarantowana. |
| -mp | Utwórz plik zrzutu „MiniPlus”. — Obejmuje całą pamięć prywatną i cały obraz odczytu/zapisu lub zamapowaną pamięć. — obejmuje wszystkie metadane (proces, wątek, moduł, uchwyt, przestrzeń adresowa itp.). - Aby zminimalizować rozmiar, największy obszar pamięci prywatnej ponad 512 MB jest wykluczony. Obszar pamięci jest definiowany jako suma alokacji pamięci o tym samym rozmiarze. Zrzut jest tak szczegółowy jak pełny zrzut, ale ma 10%-75% jego rozmiaru. - Uwaga: procesy CLR są zrzucane jako pełne (-ma) ze względu na ograniczenia debugowania. |
| -mc | Napisz plik zrzutu niestandardowego. — Zawiera pamięć i metadane zdefiniowane przez określoną MINIDUMP_TYPE maskę (Hex). |
| -Md | Utwórz plik zrzutu Callback. — Zawiera pamięć zdefiniowaną przez procedurę MiniDumpWriteDump wywołania zwrotnego o nazwie MiniDumpCallbackRoutine określonej biblioteki DLL.— obejmuje wszystkie metadane (proces, wątek, moduł, uchwyt, przestrzeń adresowa itp.). |
| -mk | Utwórz również plik zrzutu pamięci jądra. — Zawiera stosy jądra systemowego wątków w procesie. — System operacyjny nie obsługuje zrzutu jądra ( -mk) podczas korzystania z klona (-r).— Przy używaniu wielu rozmiarów zrzutu, dla każdego z rozmiarów pobierany jest zrzut jądra. |
Warunki:
| Warunek | opis |
|---|---|
| -a | Unikaj awarii. Wymaga -r. Jeśli wyzwalacz spowoduje długotrwałe wstrzymanie elementu docelowego z powodu przekroczenia limitu współbieżnych zrzutów, wyzwalacz zostanie pominięty. |
| -przy | Unikaj awarii w przypadku przekroczenia limitu czasu. Anuluj zbieranie wyzwalacza w N sekundach. |
| -b | Traktuj punkty przerwania debugowania jako wyjątki (w przeciwnym razie je ignoruj). |
| -c | Próg CPU powyżej którego należy utworzyć zrzut procesu. |
| -Cl | Próg użycia CPU poniżej którego należy utworzyć zrzut procesu. |
| -dc | Dodaj określony ciąg do wygenerowanego komentarza zrzutu. |
| -e | Napisz zrzut pamięci, gdy proces napotka nieobsługiwany wyjątek. Uwzględnij element , 1 aby utworzyć zrzut dla wyjątków pierwszej szansy.Dodaj -ld aby utworzyć zrzut po załadowaniu bibliotekę DLL (modułu), jeśli zastosowano filtrowanie.Dodaj -ud, aby utworzyć zrzut, gdy biblioteka DLL (moduł) zostanie zwolniona (ma zastosowanie filtrowanie).Dodaj -ct, aby utworzyć zrzut podczas tworzenia wątku.Dodaj -et, aby utworzyć zrzut po zakończeniu wątku. |
| -f | Filtruj (uwzględniaj) na podstawie zawartości wyjątków, logowania debugowania i nazwy pliku przy ładowaniu/zwalnianiu bibliotek DLL. Symbole wieloznaczne (*) są obsługiwane. |
| -fx | Filtruj (wyklucz) zawartość wyjątków, rejestrowanie debugowania i nazwę pliku przy ładowaniu/zwalnianiu bibliotek DLL. Symbole wieloznaczne (*) są obsługiwane. |
| -g | Uruchom jako natywny debuger w procesie zarządzanym (bez interoperacyjności). |
| -h | Zapisz zrzut pamięci, jeśli proces ma zawieszone okno (nie odpowiada na komunikaty okna przez co najmniej 5 sekund). |
| -k | Zakończ proces po klonowaniu (-r) lub na końcu zbierania zrzutu. |
| -l | Wyświetl logi debugowania procesu. |
| -m | Próg zatwierdzenia pamięci w MB, po osiągnięciu którego ma zostać utworzony zrzut. |
| -ml | Wyzwalaj, gdy przydział pamięci spadnie poniżej określonej wartości MB. |
| -n | Liczba zrzutów do zapisu przed zakończeniem. |
| -o | Zastąp istniejący plik zrzutu. |
| -p | Wyzwalaj, gdy licznik wydajności wynosi lub przekracza określony próg. W niektórych licznikach i/lub nazwach wystąpień może być rozróżniana wielkość liter. |
| -pl | Wyzwalaj, gdy licznik wydajności spadnie poniżej określonego progu. |
| -r | Zrzut danych za pomocą klonu. Limit współbieżny jest opcjonalny (wartość domyślna 1, maksymalna 5). System operacyjny nie obsługuje zrzutu jądra (-mk) podczas korzystania z klona (-r).
UWAGA: wysoka wartość współbieżności może mieć wpływ na wydajność systemu.- Windows 7: używa Reflection. System operacyjny nie obsługuje -e.— Windows 8.0: używa odbicia. System operacyjny nie obsługuje -e.— Windows 8.1+: używa programu PSS. Obsługiwane są wszystkie typy wyzwalaczy. |
| -s | Liczba sekund przed zapisaniem zrzutu (wartość domyślna to 10). |
| -t | Zapisz zrzut pamięci w momencie zakończenia procesu. |
| -u | Traktuj użycie CPU względem jednego rdzenia (używano z -c). |
| -v | TYLKO DEBUGOWANIE: Pełne dane wyjściowe. |
| -w | Poczekaj na uruchomienie określonego procesu, jeśli nie jest uruchomiony. |
| -wer | Kolejkuj największy zrzut pamięci do systemu raportowania błędów w Windows. |
| -x | Uruchom określony obraz z opcjonalnymi argumentami. Jeśli jest to aplikacja sklepu Microsoft Store lub pakiet, narzędzie ProcDump rozpocznie działanie przy następnej aktywacji (tylko). |
| -y | UKRYTE: Aktywacja aplikacji sklepowej. |
| -64 | Domyślnie procDump przechwytuje 32-bitowy zrzut 32-bitowego procesu podczas uruchamiania w 64-bitowym systemie Windows. Ta opcja zastępuje tworzenie 64-bitowego zrzutu. Służy tylko do debugowania podsystemu WOW64. |
Umowa licencyjna:
-accepteula Użyj opcji wiersza polecenia, aby automatycznie zaakceptować umowę licencyjną Sysinternals.
Automatyczne kończenie:
-cancel <Target Process PID>
Użycie tej opcji lub ustawienie zdarzenia o nazwie ProcDump-<PID> jest takie samo jak wpisywanie ctrl+C, aby bezpiecznie zakończyć ProcDump. Łagodne zakończenie gwarantuje wznowienie procesu, jeśli przechwytywanie jest aktywne. Anulowanie dotyczy wszystkich wystąpień ProcDump monitorujących proces.
Nazwa pliku:
Domyślna nazwa pliku zrzutu: PROCESSNAME_YYMMDD_HHMMSS.dmp
Następujące zamiany są obsługiwane:
| Zastąpienie | Wyjaśnienie |
|---|---|
| PROCESSNAME | Nazwa procesu |
| identyfikator PID | Identyfikator procesu |
| KOD WYJĄTKU | Kod wyjątku |
| RRMMDD | Rok/miesiąc/dzień |
| HHMMSS | Godzina/minuta/sekunda |
Przykłady
Utwórz minizrzut procesu o nazwie 'notepad' (istnieje tylko jedno dopasowanie):
C:\>procdump notepadNapisz pełny zrzut procesu z identyfikatorem PID "4572":
C:\>procdump -ma 4572Najpierw wykonaj mini zrzut pamięci, a następnie pełny zrzut procesu z identyfikatorem PID '4572'.
C:\>procdump -mm -ma 4572Zapisz 3 mini zrzuty procesu o nazwie 'notepad' w odstępach 5-sekundowych.
C:\>procdump -n 3 -s 5 notepadZapisz maksymalnie 3 mini zrzuty procesu o nazwie "consume", gdy przekracza 20% użycia procesora PRZEZ pięć sekund:
C:\>procdump -n 3 -s 5 -c 20 consumeNapisz mini zrzut dla procesu o nazwie "hang.exe", gdy jeden z jego okien nie odpowiada przez ponad 5 sekund:
C:\>procdump -h hang.exeWykonaj pełny zrzut i zrzut pamięci jądra procesu o nazwie "hang.exe", gdy jedno z jego okien przestaje odpowiadać przez ponad 5 sekund.
C:\>procdump -ma -mk -h hang.exeZapisz mini zrzut procesu o nazwie "outlook", gdy całkowite użycie procesora systemu przekracza 20% przez 10 sekund.
C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20Zapisz pełny zrzut procesu o nazwie "outlook", gdy liczba dojść programu Outlook przekracza 10 000:
C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000Zapisz pełny zrzut procesu 'svchost' o PID 1234, instancja #87, gdy liczba uchwytów przekracza 10 000:
C:\>procdump -ma 1234 -p "\Process(svchost#87)\Handle Count" 10000Uwaga: wiele liczników wystąpień
Jeśli istnieje wiele wystąpień licznika, musisz dołączyć nazwę i/lub numer wystąpienia.\Processor(NNN)\% Processor Time \Thermal Zone Information(<name>)\Temperature \Process(<name>[#NNN])\<counter>Starsze systemy operacyjne wymagają dodania identyfikatora PID dla
\Processliczników.\Process(<name>[_PID])\<counter>Porada: użyj Monitora Wydajności, aby wyświetlić liczniki (uwzględniając wielkość liter).
Porada: W przypadku liczników opartych na\Process(*), użyj programu PowerShell, aby przypisać identyfikator PID do#NNN.Get-Counter -Counter "\Process(*)\ID Process"Napisz pełny zrzut dla drugiego wyjątku prawdopodobieństwa:
C:\>procdump -ma -e w3wp.exeNapisz pełny zrzut dla wyjątku prawdopodobieństwa 1 lub 2:
C:\>procdump -ma -e 1 w3wp.exeNapisz pełny zrzut komunikatu ciągu debugowania:
C:\>procdump -ma -l w3wp.exeUtwórz do 10 pełnych zrzutów pamięci każdego wyjątku pierwszej lub drugiej szansy w3wp.exe.
C:\>procdump -ma -n 10 -e 1 w3wp.exeZapisz maksymalnie 10 pełnych zrzutów, jeśli kod/nazwa wyjątku/msg zawiera '
NotFound':C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exeZapisz maksymalnie 10 pełnych zrzutów, jeśli komunikat debugowania zawiera "
NotFound":C:\>procdump -ma -n 10 -l -f NotFound w3wp.exePoczekaj na proces o nazwie "Notatnik" (i monitoruj go pod kątem wyjątków):
C:\>procdump -e -w notepadUruchom proces o nazwie "Notatnik" (i monitoruj go pod kątem wyjątków):
C:\>procdump -e -x c:\dumps notepadZarejestruj się na uruchomienie i spróbuj aktywować aplikację sklepu. Nowe wystąpienie ProcDump rozpocznie działanie po jego aktywacji.
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMapsZarejestruj się w celu uruchomienia pakietu sklepowego. Nowe wystąpienie ProcDump zostanie uruchomione, gdy zostanie aktywowane (ręcznie).
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbweNapisz zrzut MiniPlus magazynu informacji programu Microsoft Exchange, gdy ma on nieobsługiwany wyjątek:
C:\>procdump -mp -e store.exeWyświetlaj bez zapisywania zrzutu, kody wyjątków/nazwy w3wp.exe:
C:\>procdump -e 1 -f "" w3wp.exeWindows 7/8.0; Użyj Reflection, aby zmniejszyć przestoje w przypadku 5 kolejnych wyzwalaczy.
C:\>procdump -r -ma -n 5 -s 15 wmplayer.exeWindows 8.1+; Użyj usługi PSS, aby zmniejszyć przestój przy 5 współbieżnych wyzwalaczach:
C:\>procdump -r 5 -ma -n 5 -s 15 wmplayer.exeZainstaluj narzędzie ProcDump jako debuger postmortem (AeDebug):
C:\>procdump -ma -i c:\dumps.. lub..
C:\Dumps>procdump -ma -iOdinstaluj narzędzie ProcDump jako debuger postmortem (AeDebug) :
C:\>procdump -u
Zobacz listę przykładowych wierszy poleceń (przykłady są wymienione powyżej):
C:\>procdump -? -e
Linki powiązane
- Windows Internals Book Oficjalna strona aktualizacji i errata dla definitywnej książki o wewnętrznych mechanizmach Windows, autorstwa Marka Russinovicha i Davida Solomona.
- Dokumentacja administratora systemu Windows Sysinternals Oficjalny przewodnik dotyczący narzędzi Sysinternals firmy Mark Russinovich i Aaron Margosis, w tym opisy wszystkich narzędzi, ich funkcji, sposobu ich używania do rozwiązywania problemów i przykładowych rzeczywistych przypadków ich użycia.
plik ProcDump(1,2 MB)
Pobierz narzędzie ProcDump dla systemu Linux (GitHub)
Pobierz narzędzie ProcDump dla komputerów Mac (GitHub)
Działa w:
- Klient: System Windows 11 lub nowszy.
- Serwer: System Windows Server 2016 lub nowszy.
Dowiedz się więcej
- Defrag Tools: #9 — ProcDump Ten odcinek narzędzi Defrag Tools obejmuje informacje o tym, co narzędzie przechwytuje i oczekiwane czasy przestoju
- Defrag Tools: #10 — ProcDump — Wyzwalacze W tym odcinku omówiono opcje wyzwalacza w szczególności wyjątki prawdopodobieństwa 1 i 2.
- Narzędzia Defrag Tools: #11 — ProcDump — Windows 8 & Process Monitor W tym odcinku omówiono obsługę nowoczesnych aplikacji oraz obsługę logowania za pomocą narzędzia Process Monitor.