ProcDump — это программа командной строки, основная цель которой — мониторинг приложения для пиков ЦП и создание аварийных дампов во время пиков, которые администратор или разработчик могут использовать для определения причины всплеска. ProcDump также включает в себя мониторинг зависания окон (используя то же определение окна, которое использует Windows и Диспетчер задач), необработанное мониторинг исключений и может создавать дампы на основе значений счетчиков производительности системы. Она также может служить общей программой дампа процессов, которую можно внедрить в другие скрипты.
Напишите файл дампа Mini. (по умолчанию) — включает непосредственно и косвенно ссылаемую память (стеки и ссылки на них). — включает все метаданные (процесс, поток, модуль, дескриптор, адресное пространство и т. д.).
-мама
Напишите файл дампа Full. — включает всю память (изображение, сопоставленное и закрытое). — включает все метаданные (процесс, поток, модуль, дескриптор, адресное пространство и т. д.).
-мт
Напишите файл дампа Triage. — включает непосредственно ссылаемую память (стеки). — включает ограниченные метаданные (процесс, поток, модуль и дескриптор). — попытка удаления конфиденциальной информации, но не гарантируется.
-нардеп
Напишите файл дампа MiniPlus. — включает всю частную память и все изображения чтения и записи или сопоставленную память. — включает все метаданные (процесс, поток, модуль, дескриптор, адресное пространство и т. д.). — Чтобы свести к минимуму размер, самая большая область частной памяти превышает 512 МБ. Область памяти определяется как сумма одноразмерных выделений памяти. Дамп так же подробно, как полный дамп, но размер составляет 10%-75%. — Примечание. Процессы CLR сбрасываются как full (-ma) из-за ограничений отладки.
-МГц
Напишите файл дампа Custom. — включает память и метаданные, определенные указанной MINIDUMP_TYPE маской (шестнадцатеричной).
-md
Напишите файл дампа обратного вызова. — включает память, определенную MiniDumpWriteDump подпрограммой обратного вызова с именем MiniDumpCallbackRoutine указанной библиотеки DLL. — включает все метаданные (процесс, поток, модуль, дескриптор, адресное пространство и т. д.).
-mk
Также напишите файл дампа ядра. — включает стеки ядра потоков в процессе. — ОС не поддерживает дамп ядра (-mk) при использовании клона (-r). — При использовании нескольких размеров дампа ядро принимается для каждого размера дампа.
Условия.
Условие
Description
-a
Избегайте сбоя. Требует использования -r. Если триггер приведет к приостановке целевого объекта в течение длительного времени из-за превышенного ограничения параллельного дампа, триггер будет пропущен.
-у
Избегайте сбоя во время ожидания. Отмена коллекции триггера в 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
Обрабатывать использование ЦП относительно одного ядра (используемого с -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
Имя процесса
ИД процесса
Идентификатор процесса
EXCEPTIONCODE
Код исключения
ГГММДД
Год/месяц/день
HHMMSS
Час/минута/секунда
Примеры
Напишите мини-дамп процесса с именем Блокнот (только одно совпадение может существовать):
C:\>procdump notepad
Напишите полный дамп процесса с piD "4572":
C:\>procdump -ma 4572
Сначала напишите мини-файл, а затем полный дамп процесса с PID '4572':
C:\>procdump -mm -ma 4572
Напишите 3 мини-дампы в 5 секундах от процесса с именем Блокнот:
C:\>procdump -n 3 -s 5 notepad
Записывайте до 3 мини-дампов процесса с именем "потреблять", когда оно превышает 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
Напишите полный дамп идентификатора PID 1234, экземпляр #87, когда число дескрипторов превышает 10 000:
Примечание. Счетчики нескольких экземпляров
Если счетчик имеет несколько экземпляров, необходимо включить номер имени и (или) экземпляра.
\Processor(NNN)\% Processor Time
\Thermal Zone Information(<name>)\Temperature
\Process(<name>[#NNN])\<counter>
Для счетчиков требуется добавить идентификатор PID для \Process счетчиков.
\Process(<name>[_PID])\<counter>
Совет. Используйте Монитор производительности для просмотра счетчиков (например, конфиденциальности регистра). Совет. Для \Process(*) счетчиков на основе используйте PowerShell для сопоставления идентификатора с его #NNNидентификатором.
Get-Counter -Counter "\Process(*)\ID Process"
Создание полного дампа для 2-го исключения шанса:
C:\>procdump -ma -e w3wp.exe
Создание полного дампа для 1-го или 2-го случайного исключения:
C:\>procdump -ma -e 1 w3wp.exe
Запись полного дампа для сообщения строки отладки:
C:\>procdump -ma -l w3wp.exe
Записывайте до 10 полных дампов каждого из 1-го или 2-го исключения w3wp.exe:
C:\>procdump -ma -n 10 -e 1 w3wp.exe
Записывайте до 10 полных дампов, если код/имя/msg исключения содержит "NotFound:
C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exe
Записывайте до 10 полных дампов, если сообщение строки отладки содержит "NotFound":
C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
Подождите, пока процесс называется блокнот (и отслеживайте его для исключений):
C:\>procdump -e -w notepad
Запустите процесс с именем Блокнот (и отслеживайте его для исключений):
C:\>procdump -e -x c:\dumps notepad
Зарегистрируйтесь для запуска и попытайтесь активировать хранилище "приложение". Новый экземпляр ProcDump запускается при активации:
Напишите дамп 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 Internals Book The official updates and errata page for the definitive book on Windows internals, by Mark Russinovich and David Solomon.
Справка администратора Windows Sysinternals— официальное руководство по служебным программам Sysinternals Марком Руссиновичем и Аароном Маргозом, включая описания всех инструментов, их функции, способы их использования для устранения неполадок и примеры реальных вариантов их использования.
Использование Web App Down, Crash Monitoring и Ask Genie для устранения неполадок. Используйте эти средства для мониторинга доступности приложений и платформ, выявления необработанных исключений, записи дампов памяти и стека вызовов, а также поиска областей для исследования и диагностики.