PLMDebug
PLMDebug.exe — это средство, позволяющее использовать отладчик Windows для отладки приложения Windows, которое выполняется в разделе Управление жизненным циклом процессов (PLM). С помощью PLMDebug вы можете вручную управлять приостановкой, возобновлением и завершением работы приложения для Windows.
Совет В Windows 10 версии 1607 или более поздней можно использовать команды UWP, такие как .createpackageapp, для отладки приложений UWP. Дополнительные сведения см. в статье Отладка приложения UWP с помощью WinDbg.
Где получить PLMDebug
PLMDebug.exe входит в состав средств отладки для Windows.
plmdebug /query [Package]
plmdebug /enableDebug Package [DebuggerCommandLine]
plmdebug /terminate Package
plmdebug /forceterminate Package
plmdebug /cleanterminate Package
plmdebug /suspend Package
plmdebug /resume Package
plmdebug /disableDebug Package
plmdebug /enumerateBgTasks Package
plmdebug /activateBgTask "{TaskID}"
Параметры
Пакет
Полное имя пакета или идентификатор выполняющегося процесса.
DebuggerCommandLine
Командная строка для открытия отладчика. Командная строка должна содержать полный путь к отладчику. Если путь содержит пробелы, он должен быть заключен в кавычки. Командная строка также может содержать аргументы. Ниже приведено несколько примеров.
"C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64\WinDbg.exe"
"\"C:\Program Files\Debugging Tools for Windows (x64)\WinDbg.exe\" -server npipe:pipe=test"
/query [пакет]
Отображает состояние выполнения для установленного пакета. Если пакет не указан, эта команда отображает состояния выполнения для всех установленных пакетов.
/enableDebugPackage [DebuggerCommandLine]
Увеличивает количество ссылок отладки для пакета. Пакет исключается из политики PLM, если у него есть ненулевое число ссылок на отладку. Каждый вызов /enableDebug должен быть связан с вызовом /disableDebug. Если указать DebuggerCommandLine, отладчик будет подключаться при запуске любого приложения из пакета.
/terminatePackage
Завершает работу пакета.
/forceTerminatePackage
Принудительное завершение пакета.
/cleanTerminatePackage
Приостанавливает, а затем завершает работу пакета.
/suspendPackage
Приостанавливает пакет.
/resumePackage
Возобновляет работу пакета.
/disableDebugPackage
Уменьшает количество ссылок отладки для пакета.
/enumerateBgTasks Package
Перечисление идентификаторов фоновых задач для пакета.
/activateBgTask "{TaskId}"
Активирует фоновую задачу. Обратите внимание, что не все фоновые задачи можно активировать с помощью PLMDebug. TaskID должен быть заключен в фигурные скобки и кавычки. Пример:
plmdebug.exe /activatebgtask "{29421c11-1e1a-47a4-9121-949ce9e25456}"
Remarks
Перед вызовом любой функции приостановки, возобновления или завершения необходимо вызвать plmdebug /enableDebug .
Средство PLMDebug вызывает методы интерфейса IPackageDebugSettings. Этот интерфейс позволяет вручную управлять жизненным циклом процессов для приложений. С помощью этого интерфейса (и, как следствие, с помощью этого средства) вы можете приостановить, возобновить и завершить работу приложения Для Windows. Обратите внимание, что методы интерфейса IPackageDebugSettings применяются ко всему пакету. Приостановка, возобновление и завершение работы влияет на все запущенные в данный момент приложения в пакете.
Примеры
Пример 1
Подключение отладчика при запуске приложения
Предположим, у вас есть приложение с именем MyApp, которое находится в пакете с именем MyApp_1.0.0_x64__tnq5r49etfg3c. Убедитесь, что пакет установлен, отобразив полные имена и состояния выполнения всех установленных пакетов. В окне командной строки введите следующую команду.
plmdebug /query
Package full name: 1daa103b-74e1-426d-8193-b6bc7ed66fed_1.0.0.0_x86__tnq5r49etfg3c
Package state: Terminated
Package full name: 41fb5f27-7b60-4f5e-8459-803673131dd9_1.0.0.0_x86__tnq5r49etfg3c
Package state: Suspended
...
Package full name: MyApp_1.0.0.0_x64__tnq5r49etfg3c
Package state: Terminated
...
Приумножение количества ссылок на отладку для пакета и укажите, что при запуске приложения необходимо подключить WinDbg.
plmdebug /enableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c "C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64\WinDbg.exe"
При запуске приложения WinDbg присоединяется и прерывается.
Завершив отладку, отсоедините отладчик. Затем уменьшайте количество ссылок отладки для пакета.
plmdebug /disableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c
Пример 2
Подключение отладчика к уже работающему приложению
Предположим, вы хотите подключить WinDbg к MyApp, которое уже запущено. В WinDbg в меню Файл выберите Присоединить к процессу. Запишите идентификатор процесса для MyApp. Предположим, что идентификатор процесса — 4816.
Увеличение количества ссылок на отладку для пакета, содержащего MyApp.
plmdebug /enableDebug 4816
В WinDbg в диалоговом окне Присоединение к процессу выберите процесс 4816 и нажмите кнопку ОК. WinDbg присоединится к MyApp.
Завершив отладку MyApp, отсоедините отладчик. Затем уменьшается количество отладочных ссылок для пакета.
plmdebug /disableDebug 4816
Пример 3
Приостановка и возобновление работы приложения вручную
Предположим, вы хотите вручную приостановить и возобновить работу приложения. Сначала необходимо увеличить число отладочных ссылок для пакета, содержащего ваше приложение.
plmdebug /enableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c
Приостановить пакет. Вызывается обработчик приостановки приложения, который может быть полезен для отладки.
plmdebug /suspend MyApp_1.0.0.0_x64__tnq5r49etfg3c
Завершив отладку, возобновите пакет.
plmdebug /resume MyApp_1.0.0.0_x64__tnq5r49etfg3c
Наконец, уменьшается количество отладочных ссылок для пакета.
plmdebug /disableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c
Пример 4
Активация фоновой задачи вручную
Чтобы вручную активировать фоновую задачу для отладки, можно запросить список зарегистрированных фоновых задач, а затем активировать его с помощью plmdebug.
Сначала запросите набор зарегистрированных фоновых задач:
plmdebug /enumeratebgtasks MyApp_1.0.0.0_x64__tnq5r49etfg3c
Package full name is MyApp_1.0.0.0_x64__tnq5r49etfg3c.
Background Tasks:
SampleTask : {50DB0363-D722-4E23-A18F-1EF49B226CC3}
Если вы хотите гарантировать активацию задачи, сначала включите режим отладки. Например, оппортунистические задачи, такие как задачи, активированные TimeTrigger, не активируются, пока система находится в режиме экономии заряда. Включение режима отладки для пакета гарантирует, что система игнорирует политики, которые в противном случае будут препятствовать активации.
plmdebug /enabledebug MyApp_1.0.0.0_x64__tnq5r49etfg3c
Затем активируйте требуемую задачу, используя ее идентификатор GUID регистрации, который вы перечислили.
plmdebug /activatebgtask "{50DB0363-D722-4E23-A18F-1EF49B226CC3}"
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по