ProcDump версии 12.01

Марк Руссинович и Эндрю Ричардс

Опубликовано: 9 июля 2026 г.

Скачать ProcDump(1,2 МБ)

Скачать ProcDump для Linux (GitHub)
Скачать ProcDump для Mac (GitHub)

Создание с помощью ZoomIt

Введение

ProcDump — это программа командной строки, основная цель которой — мониторинг приложения для пиков ЦП и создание аварийных дампов во время пиков, которые администратор или разработчик могут использовать для определения причины всплеска. ProcDump также включает в себя мониторинг зависания окон (используя то же определение зависания окна, которое использует Windows и Диспетчер задач), мониторинг необработанных исключений и может создавать дампы на основе значений системных счетчиков производительности. Она также может служить общей программой дампа процессов, которую можно внедрить в другие скрипты.

Использование ProcDump

Использование записи:

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, ...]}
            }

Инструкции по установке:

procdump.exe -i [Dump_Folder]
            [-mm] [-ma] [-mt] [-mp] [-mc <Mask>] [-md <Callback_DLL>] [-mk]
            [-r]
            [-at <Timeout>]
            [-k]
            [-wer]

Удаление использования:

procdump.exe -u

Типы дампов:

Тип дампа Описание
-миллиметр Создайте файл дампа "Mini". (по умолчанию)
— включает непосредственно и косвенно ссылаемую память (стеки и ссылки на них).
— включает все метаданные (процесс, поток, модуль, дескриптор, адресное пространство и т. д.).
-мама Создайте файл дампа Full.
— включает всю память (образы, отображаемая и частная).
— включает все метаданные (процесс, поток, модуль, дескриптор, адресное пространство и т. д.).
-мт Создайте файл дампа Triage.
— включает непосредственно ссылаемую память (стеки).
— включает ограниченные метаданные (процесс, поток, модуль и дескриптор).
— Предпринимается попытка удаления конфиденциальной информации, но это не гарантируется.
-mp Создайте файл дампа «MiniPlus».
— включает всю частную память, всю память изображений для чтения/записи и всю сопоставленную память.
— включает все метаданные (процесс, поток, модуль, дескриптор, адресное пространство и т. д.).
— Чтобы свести к минимуму размер, исключены самые большие области частной памяти, превышающие 512 МБ.
  Область памяти определяется как сумма одноразмерных выделений памяти.
  Этот дамп настолько подробный, как полный дамп, но его размер составляет 10%-75% размера полного дампа.
— Примечание. Процессы CLR сбрасываются как full (-ma) из-за ограничений отладки.
-mc Напишите файл дампа Custom.
— включает память и метаданные, определенные указанной MINIDUMP_TYPE маской (шестнадцатеричной).
-md Создайте файл дампа обратного вызова.
— включает память, определяемую подпрограммой обратного вызова MiniDumpWriteDump, с именем MiniDumpCallbackRoutine в указанной библиотеке DLL.
— включает все метаданные (процесс, поток, модуль, дескриптор, адресное пространство и т. д.).
-mk Также создайте файл дампа «ядра».
— включает стек ядра потоков в данном процессе.
— ОС не поддерживает дамп ядра (-mk) при использовании клона (-r).
— При использовании нескольких размеров дампа для каждого размера создается дамп ядра.

Условия.

Условие Описание
-a Избегайте сбоя. Требует использования -r. Если триггер приведет к приостановке целевого процесса на длительное время из-за превышения ограничения на параллельный дамп, триггер будет пропущен.
-at Избегайте сбоя при Timeout. Отменить сбор триггера через N секунд.
-b Обрабатывать точки останова отладки как исключения (в противном случае игнорируйте их).
-c Порог ЦП, выше которого создается дамп процесса.
-cl Пороговое значение процессора, при превышении которого создается дамп процесса.
-постоянный ток Добавьте указанную строку в созданный комментарий дампа.
-e Создание дампа при возникновении необработанного исключения.
Включите 1 для создания дампа при первоначальных исключениях.
Добавьте -ld для создания дампа при загрузке библиотеки DLL (модуля) (применяется фильтрация).
Добавьте -ud для создания дампа при выгрузке библиотеки DLL (модуля) (применяется фильтрация).
Добавьте -ct для создания дампа при создании потока.
Добавьте -et для создания дампа при выходе потока.
-f Фильтрация по содержимому исключений, ведению журнала отладки и именам файлов при загрузке и выгрузке DLL. Поддерживаются подстановочные символы (*).
-fx Примените фильтр (исключите) по содержимому исключений, журналированию отладки и по имени файла при загрузке или выгрузке DLL. Поддерживаются подстановочные символы (*).
-g Запуск нативного отладчика в управляемом процессе (без интероперабельности).
-h Создать дамп, если процесс имеет зависшее окно (не отвечает на сообщения окон не менее 5 секунд).
-k Завершить процесс после клонирования (-r) или в конце сбора дампа.
-l Отображение журнала отладки процесса.
-m Пороговое значение выделения памяти в МБ, при котором создается дамп.
-мл Триггер срабатывает, когда выделение памяти падает ниже указанного значения в МБ.
-n Количество дампов памяти для записи перед выходом.
-o Перезапись существующего файла дампа.
-p Триггер, когда счетчик производительности находится в заданном пороге или превышает его. Некоторые счетчики и (или) имена экземпляров могут быть чувствительны к регистру.
-pl Триггер, когда счетчик производительности подпадает ниже указанного порогового значения.
-r Дамп с использованием клона. Параллельное ограничение является необязательным (по умолчанию — 1, максимум 5). ОС не поддерживает дамп ядра (-mk) при использовании клона (-r). ВНИМАНИЕ: высокое значение параллелизма может повлиять на производительность системы.
— Windows 7: использует отражение. ОС не поддерживает -e.
— Windows 8.0: использует отражение. ОС не поддерживает -e.
— Windows 8.1+: использует PSS. Поддерживаются все типы триггеров.
-s Последовательные секунды перед записью дампа (по умолчанию — 10).
-t Создание дампа при завершении процесса.
-u Обработать загрузку CPU относительно одного ядра (вместе с -c).
-v Только для отладки: подробные выходные данные.
-w Дождитесь запуска указанного процесса, если он не запущен.
-wer Поставить в очередь (самый большой) дамп для отправки в отчет об ошибках Windows.
-x Запустите указанный образ с необязательными аргументами. Если это приложение или пакет Store, ProcDump начнется со следующей активации (только).
-y HIDDEN: Активация приложения Store.
-64 По умолчанию ProcDump захватывает 32-разрядный дамп 32-разрядного процесса при запуске на 64-разрядной платформе Windows. Этот параметр переопределяет создание 64-разрядного дампа. Используется только для отладки подсистемы WOW64.

Лицензионное соглашение:

Используйте параметр командной -accepteula строки для автоматического принятия лицензионного соглашения Sysinternals.

Автоматическое завершение:

-cancel <Target Process PID>

Использование этого параметра или настройка события с именем ProcDump-<PID> совпадает с вводом клавиш CTRL+C для корректного завершения ProcDump. Корректное завершение гарантирует возобновление процесса, если запись активна. Отмена применяется ко всем экземплярам ProcDump, следящим за процессом.

Имя файла.

Имя файла дампа по умолчанию: PROCESSNAME_YYMMDD_HHMMSS.dmp

Поддерживаются следующие замены:

Замена Пояснение
PROCESSNAME Имя процесса
PID Идентификатор процесса
EXCEPTIONCODE Код исключения
ГГММДД Год/месяц/день
HHMMSS Час/минута/секунда

Примеры

  • Создайте мини-дамп процесса с именем 'notepad' (только одно совпадение может существовать):

    C:\>procdump notepad
    
  • Создайте полный дамп процесса с PID "4572":

    C:\>procdump -ma 4572
    
  • Сначала напишите мини-файл, а затем полный дамп процесса с PID '4572':

    C:\>procdump -mm -ma 4572
    
  • Создайте 3 мини-дампа с интервалом 5 секунд для процесса под названием 'notepad'.

    C:\>procdump -n 3 -s 5 notepad
    
  • Записывайте до 3 мини-дампов процесса с именем "consume", когда он превышает 20 % использования ЦП в течение пяти секунд.

    C:\>procdump -n 3 -s 5 -c 20 consume
    
  • Создайте мини-дамп для процесса с именем "hang.exe", когда одно из его окон не отвечает более 5 секунд.

    C:\>procdump -h hang.exe
    
  • Напишите полный дамп и дамп ядра для процесса под именем "hang.exe", если одно из его окон не отвечает более 5 секунд.

    C:\>procdump -ma -mk -h hang.exe
    
  • Напишите мини-дамп процесса с именем Outlook, когда общее использование ЦП системы превышает 20 % в течение 10 секунд:

    C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20
    
  • Напишите полный дамп процесса с именем Outlook, когда число дескрипторов Outlook превышает 10 000:

    C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000
    
  • Создайте полную дамп процесса 'svchost' с идентификатором PID 1234, экземпляр #87, когда число дескрипторов превышает 10 000.

    C:\>procdump -ma 1234 -p "\Process(svchost#87)\Handle Count" 10000
    

    Примечание: Счетчики нескольких инстанций
    Если имеется несколько экземпляров счетчика, необходимо указать Имя и/или номер экземпляра.

    \Processor(NNN)\% Processor Time
    \Thermal Zone Information(<name>)\Temperature
    \Process(<name>[#NNN])\<counter>
    

    Старые операционные системы требуют добавления PID для \Process счетчиков.

    \Process(<name>[_PID])\<counter>
    

    Совет. Используйте Монитор производительности для просмотра счетчиков (например, конфиденциальности регистра).
    Совет: для счетчиков на основе \Process(*) используйте PowerShell, чтобы сопоставить PID с его #NNN.

    Get-Counter -Counter "\Process(*)\ID Process"
    
  • Создание полного дампа для 2-го исключения шанса:

    C:\>procdump -ma -e w3wp.exe
    
  • Создайте полный дамп для исключения первого или второго шанса:

    C:\>procdump -ma -e 1 w3wp.exe
    
  • Записать полный дамп для сообщения отладочной строки:

    C:\>procdump -ma -l w3wp.exe
    
  • Записывайте до 10 полных дампов для каждого исключения первого или второго шанса в w3wp.exe.

    C:\>procdump -ma -n 10 -e 1 w3wp.exe
    
  • Записывайте до 10 полных дампов, если код, имя или сообщение исключения содержит "NotFound".

    C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exe
    
  • Записывайте до 10 полных дампов, если сообщение строки отладки содержит "NotFound":

    C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
    
  • Подождите процесса с именем 'notepad' (и отслеживайте его на предмет исключений):

    C:\>procdump -e -w notepad
    
  • Запустите процесс с именем Блокнот (и отслеживайте его для исключений):

    C:\>procdump -e -x c:\dumps notepad
    
  • Зарегистрируйтесь для запуска и попытайтесь активировать приложение магазина. Новый экземпляр ProcDump запускается при активации:

    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMaps
    
  • Зарегистрируйтесь на запуск «пакета» магазина. Новый экземпляр ProcDump запускается при активации (вручную):

    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe
    
  • Создайте дамп MiniPlus для Microsoft Exchange Information Store при наличии необработанного исключения:

    C:\>procdump -mp -e store.exe
    
  • Отображение без записи дампа, коды исключений и имена w3wp.exe:

    C:\>procdump -e 1 -f "" w3wp.exe
    
  • Windows 7/8.0; Используйте отражение для уменьшения простоя для 5 последовательных триггеров:

    C:\>procdump -r -ma -n 5 -s 15 wmplayer.exe
    
  • Windows 8.1+; Используйте PSS для уменьшения простоя для 5 одновременных триггеров:

    C:\>procdump -r 5 -ma -n 5 -s 15 wmplayer.exe
    
  • Установите ProcDump в качестве отладчика postmortem (AeDebug):

    C:\>procdump -ma -i c:\dumps
    

    .. или..

    C:\Dumps>procdump -ma -i
    
  • Удалите ProcDump в качестве отладчика postmortem (AeDebug):

    C:\>procdump -u
    

См. список примеров командных строк (примеры приведены выше):

C:\>procdump -? -e
  • Книга о внутренностях Windows Официальная страница обновлений и исправлений для окончательной книги о внутренностях Windows, написанной Марком Руссиновичем и Дэвидом Соломоном.
  • Справка администратора Windows Sysinternals— официальное руководство по служебным программам Sysinternals Марком Руссиновичем и Аароном Маргозом, включая описания всех инструментов, их функции, способы их использования для устранения неполадок и примеры реальных вариантов их использования.

Скачать ProcDump(1,2 МБ)

Скачать ProcDump для Linux (GitHub)
Скачать ProcDump для Mac (GitHub)

Выполняется:

  • Клиент: Windows 11 и более поздние версии.
  • Сервер: Windows Server 2016 и выше.

Подробнее