ProcDump версии 11.0
Марк Руссинович и Эндрю Ричардс
Опубликовано: 11.03.2022
Скачать ProcDump (714 КБ)
Скачать 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
Типы дампов:
Тип дампа | Description |
---|---|
-миллиметр | Напишите файл дампа 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:
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 для сопоставления идентификатора с его#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 запускается при активации:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMaps
Зарегистрируйтесь для запуска магазина "package". Новый экземпляр 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 Internals Book The official updates and errata page for the definitive book on Windows internals, by Mark Russinovich and David Solomon.
- Справка администратора Windows Sysinternals— официальное руководство по служебным программам Sysinternals Марком Руссиновичем и Аароном Маргозом, включая описания всех инструментов, их функции, способы их использования для устранения неполадок и примеры реальных вариантов их использования.
Скачать ProcDump (714 КБ)
Скачать ProcDump для Linux (GitHub)
Скачать ProcDump для Mac (GitHub)
Выполняется:
- Клиент: Windows 8.1 и более поздние версии.
- Сервер: Windows Server 2012 и выше.
Подробнее
- Средства дефрагментации: #9 — ProcDump Этот эпизод средств Defrag охватывает то, что средство фиксирует и ожидаемые продолжительности сбоя
- Средства дефрагации: #10 - ProcDump - Триггеры этого эпизода охватывают параметры триггера, в частности 1-й и 2-й шанс исключения
- Средства дефрагментации: #11 - ProcDump - Windows 8 & Process Monitor Этот эпизод охватывает современную поддержку приложений и поддержку ведения журнала монитора процессов