ProcDump версии 10.11

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

Опубликовано: 18.08.2021 г.

Скачать ProcDump(680 КБ)

Скачивание ProcDump для Linux (GitHub)

Введение

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

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

Сбор данных об использовании:

procdump.exe [-mm] [-ma] [-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]]]
             [-l]
             [-t]
             [-f  Include_Filter, ...]
             [-fx Exclude_Filter, ...]
             [-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] [-mp] [-mc Mask] [-md Callback_DLL] [-mk]
             [-r]
             [-at Timeout]
             [-k]
             [-wer]

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

procdump.exe -u
Параметр Описание
-a Избегайте сбоев. Требуется -r. Если триггер приведет к приостановке целевого объекта в течение длительного времени из-за превышенного ограничения параллельного дампа, триггер будет пропущен.
-at Избегайте сбоев во время ожидания. Отмена сбора триггера в N секундах.
-b Обрабатывать точки останова отладки как исключения (в противном случае игнорируйте их).
-c Пороговое значение ЦП, при котором создается дамп процесса.
-cl Порог ЦП ниже, после которого создается дамп процесса.
-d Вызов подпрограммы обратного вызова minidump с именем MiniDumpCallbackRoutine указанной библиотеки DLL.
-e Создание дампа при обнаружении необработанного исключения. Включите значение 1, чтобы создать дамп при первом исключении шансов.
-f Отфильтруйте первое случайное исключение. Поддерживаются подстановочные знаки (*). Чтобы просто отобразить имена без дампа, используйте пустой фильтр ("").
-fx Фильтрация (исключение) для содержимого исключений и ведения журнала отладки. Поддерживаются подстановочные знаки.
-g Запуск отладчика в качестве собственного отладчика в управляемом процессе (без взаимодействия).
-h Запись дампа, если в процессе зависло окно (не отвечает на сообщения окна не менее 5 секунд).
-i Установите ProcDump в качестве отладчика AeDebug postmortem. Только -ma, -mp, -d и -r поддерживаются в качестве дополнительных параметров.
-k Завершение процесса после клонирования (-r) или в конце сбора дампов
-l Отображение ведения журнала отладки процесса.
-m Порог фиксации памяти в МБ, в котором создается дамп.
-ma Запись файла дампа со всей памятью процесса. Формат дампа по умолчанию включает только данные потока и дескриптора.
-mc Напишите пользовательский файл дампа. Включите память, определенную указанной маской MINIDUMP_TYPE (Шестнадцатеричная).
-md Напишите файл дампа обратного вызова. Включите память, определяемую подпрограммой обратного вызова MiniDumpWriteDumpCallbackRoutine указанной библиотеки DLL.
-mk Также запишите файл дампа ядра. Включает стеки ядра потоков в процессе. ОС не поддерживает дамп ядра (-mk) при использовании клона (-r). При использовании нескольких размеров дампа создается дамп ядра для каждого размера дампа.
-ml Активируется при удалении фиксации памяти ниже указанного значения МБ.
-mm Запись файла мини-дампа (по умолчанию).
-mp Напишите файл дампа с данными потока и дескриптором, а также всю память процесса чтения и записи. Чтобы свести к минимуму размер дампа, выполняется поиск областей памяти, размер которых превышает 512 МБ, и при обнаружении наибольшей области исключается. Область памяти — это коллекция областей выделения памяти одного размера. Удаление этой памяти (кэша) сокращает количество дампов Exchange и SQL Server на более чем 90 %.
-n Количество дампов для записи перед выходом.
-o Перезапись существующего файла дампа.
-p Триггер указанного счетчика производительности при превышении порогового значения. Примечание. Чтобы указать счетчик процессов при наличии нескольких экземпляров выполняемого процесса, используйте идентификатор процесса со следующим синтаксисом: \Process(<name>_<pid>)\counter.
-pl Триггер, когда счетчик производительности опускается ниже указанного значения.
-r Дамп с помощью клона. Параллельное ограничение является необязательным (по умолчанию 1, максимум 5).
ВНИМАНИЕ. Высокое значение параллелизма может повлиять на производительность системы.
— Windows 7: использует отражение. ОС не поддерживает -e.
— Windows 8.0: использует отражение. ОС не поддерживает -e.
— Windows 8.1+: использует PSS. Поддерживаются все типы триггеров.
-s За несколько секунд до записи дампа (значение по умолчанию — 10).
-t Напишите дамп при завершении процесса.
-u Обрабатывает использование ЦП относительно одного ядра (используется с -c).
В качестве единственного варианта удаляет ProcDump в качестве отладчика postmortem.
-w Дождитесь запуска указанного процесса, если он не запущен.
-wer Помещать в очередь (самый большой) дамп для отчеты об ошибках Windows.
-x Запустите указанное изображение с необязательными аргументами. Если это приложение или пакет Магазина, procDump начнется при следующей активации (только).
-64 По умолчанию ProcDump записывает 32-разрядный дамп 32-разрядного процесса при работе в 64-разрядной версии Windows. Этот параметр переопределяет создание 64-разрядного дампа. Используется только для отладки подсистемы WOW64.
-? Используйте -? -e, чтобы просмотреть примеры командных строк.

Если опустить имя файла дампа, по умолчанию используется <processname>_<datetime>.dmpзначение .

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

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

Задание события с именем ProcDump-<PID> совпадает с вводом клавиш CTRL+C для корректного завершения ProcDump

Имя файла:

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

Поддерживаются следующие подстановки:

Подстановка Объяснение
PROCESSNAME Имя процесса
ИД процесса ИД процесса
EXCEPTIONCODE Код исключения
ГГММДД Year/Month/Day
HHMMSS Час,минута в секунду

Примеры

Напишите мини-дамп процесса с именем "Блокнот" (может существовать только одно совпадение):

Блокнот C:\>procdump

Напишите полный дамп процесса с идентификатором PID 4572:

C:\>procdump -ma 4572

Напишите 3 мини-дампа на 5 секунд, за исключением процесса с именем "Блокнот":

C:\>procdump -s 5 -n 3 блокнот

Записывайте до 3 мини-дампов процесса с именем "потребление", когда загрузка ЦП превышает 20 % в течение пяти секунд:

C:\>procdump -c 20 -s 5 -n 3 consume

Напишите мини-дамп для процесса с именем "hang.exe", если один из них не отвечает более чем на 5 секунд:

C:\>procdump -h hang.exe hungwindow.dmp

Напишите мини-дамп процесса с именем outlook, если общий объем использования ЦП системы превышает 20 % в течение 10 секунд:

C:\>procdump outlook -p "\Processor(_Total)\% Процессорное время" 20

Напишите полный дамп процесса с именем Outlook, когда число дескрипторов Outlook превышает 10 000:

C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000

Создайте дамп MiniPlus в хранилище сведений Microsoft Exchange, если у него есть необработанное исключение:

C:\>procdump -mp -e store.exe

Отображение без записи дампа, коды исключений и имена w3wp.exe:

C:\>procdump -e 1 -f "" w3wp.exe

Напишите мини-дамп w3wp.exe если код или имя исключения содержит "NotFound":

C:\>procdump -e 1 -f NotFound w3wp.exe

Запустите процесс, а затем отслеживайте его за исключениями:

C:\>procdump -e 1 -f "" -x c:\dumps consume.exe

Зарегистрируйтесь для запуска и попытайтесь активировать современное приложение. Новый экземпляр ProcDump запустится при активации для отслеживания исключений:

C:\>procdump -e 1 -f "" -x c:\dumpsMicrosoft.BingMaps_8wekyb3d8bbwe! AppexMaps

Зарегистрируйтесь для запуска современного пакета. Новый экземпляр ProcDump запускается при активации (вручную) для отслеживания исключений:

C:\>procdump -e 1 -f "" -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe

Зарегистрируйтесь в качестве JIT-отладчика (AeDebug). Делает полные дампы в c:\dumps:

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

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

C:\>procdump -? -E

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

Скачать ProcDump(680 КБ)

Скачивание ProcDump для Linux (GitHub)

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

  • Клиент: Windows 8.1 и выше.
  • Сервер: Windows Server 2012 и выше.

Подробнее