Strona główna
» WINDOWS
»
ProcDump: przechwytywanie zrzutów procesów w celu rozwiązywania problemów ze skokami obciążenia procesora i awariami
ProcDump: przechwytywanie zrzutów procesów w celu rozwiązywania problemów ze skokami obciążenia procesora i awariami
ProcDump to narzędzie wiersza poleceń Microsoft Sysinternals, które przechwytuje zrzut pamięci procesów systemu Windows w celu rozwiązywania problemów ze skokami obciążenia procesora, awariami lub awariami aplikacji. Programiści i administratorzy systemów wykorzystują wynikowy .dmpplik do sprawdzenia, co robił proces w momencie wystąpienia problemu. Jest to migawka diagnostyczna, a nie ciągły rejestr wykorzystania procesora .
Dokumentacja firmy Microsoft, zaktualizowana 15 października 2026 r., wymienia ProcDump w wersji 12.02 i obsługuje systemy Windows 11 i nowsze oraz Windows Server 2016 i nowsze. Poniższe kroki wykorzystują wiersz polecenia systemu Windows.
Wypakuj go do wygodnego folderu, takiego jak C:\Tools\ProcDump. Nie ma tradycyjnego instalatora dla samodzielnego pliku wykonywalnego.
Utwórz zapisywalny folder wyjściowy, taki jak C:\Dumps, i otwórz wiersz poleceń. Przejdź do wyodrębnionego katalogu:
cd /d C:\Tools\ProcDump
procdump.exe -?
Polecenie pomocy wyświetla dostępne przełączniki. Jeśli umowa licencyjna Sysinternals pojawi się przy pierwszym uruchomieniu, zapoznaj się z nią i zaakceptuj ją przed kontynuowaniem. Do przechwycenia niektórych procesów chronionych lub o wyższych uprawnieniach może być potrzebny wiersz polecenia z podwyższonymi uprawnieniami, ale używaj tylko dostępu, którego faktycznie potrzebujesz.
Przykład wyodrębnionego folderu ProcDump zawierającego pliki wykonywalne wiersza poleceń.
2. Utwórz zrzut działającego procesu
Otwórz Notatnik i wpisz:
procdump.exe notepad C:\Dumps\notepad.dmp
Żąda natychmiastowego zrzutu i zapisuje go do wskazanego pliku. Bez zmiany typu zrzutu, ProcDump używa domyślnego formatu mini zrzutu ( -mm). Aby zebrać zrzut całej pamięci, gdy wymagany jest dodatkowy kontekst pamięci, należy dodać -ma:
Możesz podać nazwę procesu, nazwę usługi lub numeryczny identyfikator procesu (PID). Nazwa sprawdza się najlepiej, gdy istnieje tylko jeden pasujący proces. Przeglądarki takie jak Firefox często uruchamiają wiele procesów, dlatego użyj PID wyświetlanego na karcie Szczegóły w Menedżerze zadań , aby wybrać właściwy proces:
procdump.exe 1234 C:\Dumps\firefox.dmp
Zastąp 1234rzeczywistym PID-em. To tylko przykład.
3. Przechwyć zrzut, gdy użycie procesora gwałtownie wzrośnie
W przypadku okresowo wysokiego wykorzystania procesora pozwól ProcDump monitorować proces zamiast zgadywać, kiedy go przechwycić:
procdump.exe -n 3 -s 5 -c 20 notepad C:\Dumps
Tutaj -c 20ustawia próg wykorzystania procesora przez proces na 20%, -s 5wymaga, aby utrzymywał się powyżej tego progu przez pięć kolejnych sekund i -n 3ogranicza gromadzenie danych do trzech zrzutów. Wstaw notepaddocelowy proces lub PID. Polecenie może pozostać aktywne podczas oczekiwania na zdarzenie kwalifikujące.
Użyj tego Ctrl+Cprzycisku, aby zatrzymać monitorowanie po zakończeniu. Niski próg może generować niepotrzebne pliki; wybierz wartość reprezentującą badane zachowanie. Przełącznik -ckontroluje moment wykonania zrzutu, zamiast wstawiać do niego raport historii procesora.
Zbieranie danych uruchamiane przez procesor może czekać, aż proces przekroczy wybrany próg.
4. Znajdź i przeanalizuj plik DMP
Otwórz folder wyjściowy po przechwyceniu. Jeśli podasz nazwę pliku, ProcDump jej użyje; w przeciwnym razie standardowa nazwa pliku zawiera nazwę procesu i znacznik czasu, na przykład PROCESSNAME_YYMMDD_HHMMSS.dmp. Sprawdź wynik wiersza poleceń pod kątem błędów i podanego miejsca docelowego.
Wynikowy plik DMP można przeanalizować za pomocą debugera, a nie edytora tekstu.
Plik .dmpto binarne dane debugowania, a nie dokument do odczytu w Notatniku. Otwórz go w WinDbg lub innym kompatybilnym debugerze, używając symboli aplikacji, jeśli są dostępne. Podręcznik analizy zrzutów w trybie użytkownika firmy Microsoft wyjaśnia, jak załadować zrzut i skonfigurować symbole. Przechwycone stosy i pamięć mogą pomóc w identyfikacji aktywnego wątku, wyjątku lub operacji blokującej, ale sam zrzut nie dowodzi przyczyny problemu.
Inne przydatne wyzwalacze ProcDump
Rozkaz
Kiedy go używać
procdump.exe -h notepad
Zarejestruj sytuację, gdy okno przestanie odpowiadać na wiadomości przez co najmniej pięć sekund.
procdump.exe -ma -e app.exe C:\Dumps
Przechwyć pełny zrzut nieobsłużonego wyjątku w wybranej aplikacji.
procdump.exe -m 500 app.exe C:\Dumps
Uruchom, gdy proces osiągnie próg 500 MB zatwierdzonej pamięci.
procdump.exe -e -w app.exe
Poczekaj na uruchomienie procesu, a następnie monitoruj go pod kątem nieobsłużonych wyjątków.
Te przełączniki mają więcej opcji, niż pokazano tutaj; przed przystąpieniem do tworzenia skryptów przechwytujących w systemach produkcyjnych należy zapoznać się z oficjalną składnią i przykładami .
Typowe problemy i środki ostrożności
Zrzut się nie pojawia: sprawdź, czy proces docelowy jest uruchomiony, PID jest poprawny, miejsce docelowe jest zapisywalne i czy wystąpił jakiś wyzwalacz procesora lub wyjątek.
Odmowa dostępu: Sprawdź uprawnienia procesu; uruchamiaj terminal z podwyższonym poziomem uprawnień tylko wtedy, gdy jest to autoryzowane i konieczne.
Zbieranie zrzutów pamięci zakłóca działanie aplikacji: przechwytywanie pamięci może na krótko wstrzymać proces. -rOpcja klonowania firmy Microsoft może zmniejszyć zakłócenia w obsługiwanych systemach, ale zwiększa obciążenie zasobów i nie gwarantuje braku wpływu na działanie aplikacji.
Pliki są zbyt duże lub poufne: Pełne zrzuty ( -ma) mogą zawierać hasła, dane osobowe i inną zawartość pamięci. Ogranicz dostęp, korzystaj z zatwierdzonych pamięci masowych i udostępniaj zrzuty tylko za pośrednictwem bezpiecznego kanału wsparcia.
Zacznij od domyślnego minizrzutu, przełącz się na pełny zrzut tylko wtedy, gdy będzie to wymagane w toku śledztwa, i utrzymuj warunek wyzwalający tak szczegółowy, jak to możliwe. Dzięki temu programista będzie miał użyteczny zrzut bez konieczności gromadzenia bardziej wrażliwych danych niż to konieczne.