Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
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 [Пакет]
Отображает состояние выполнения для установленного пакета. Если пакет не указан, эта команда отображает состояния выполнения для всех установленных пакетов.
/enableDebug Пакет [DebuggerCommandLine]
Увеличивает число ссылок отладки для пакета. Пакет освобождается от политики PLM, если он имеет ненулевое число ссылок на отладку. Каждый вызов /enableDebug должен быть связан с вызовом /disableDebug. Если указать DebuggerCommandLine, отладчик будет присоединяться при запуске любого приложения из пакета.
/кончать Пакет
Завершает пакет.
/forceTerminate Пакет
Принудительное завершение пакета.
/cleanTerminate Пакет
Приостанавливается, а затем завершается пакет.
/приостанавливать Пакет
Приостанавливает пакет.
/резюме Пакет
Возобновляет пакет.
/disableDebug Пакет
Уменьшает количество ссылок отладки для пакета.
/enumerateBgTasks Пакет
Перечисление идентификаторов фоновой задачи для пакета.
/activateBgTask "{TaskId}"
Активирует фоновую задачу. Обратите внимание, что не все фоновые задачи можно активировать с помощью PLMDebug. Идентификатор задачи должен быть упакован в фигурные скобки и кавычки. Например:
plmdebug.exe /activatebgtask "{29421c11-1e1a-47a4-9121-949ce9e25456}"
Замечания
Перед вызовом любой функции приостановки, возобновления или завершения работы необходимо вызвать plmdebug /enableDebug .
Средство PLMDebug вызывает методы интерфейса IPackageDebugSettings. Этот интерфейс позволяет управлять жизненным циклом процессов для приложений вручную. В этом интерфейсе (и в результате с помощью этого средства) можно приостановить, возобновить и завершить работу приложения Для Windows. Обратите внимание, что методы интерфейса IPackageDebugSettings применяются ко всему пакету. Приостановка, возобновление и прекращение работы влияют на все запущенные в данный момент приложения в пакете.
Примеры
Пример 1
Присоединение отладчика при запуске приложения
Предположим, у вас есть приложение с именем MyApp, которое находится в пакете с именем MyApp_1.0.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}"