PLMDebug

PLMDebug.exe ist ein Tool, mit dem Sie den Windows-Debugger zum Debuggen der Windows-App verwenden können, die unter Process Lifecycle Management (PLM) ausgeführt wird. Mit PLMDebug können Sie die manuelle Kontrolle über das Anhalten, Fortsetzen und Beenden einer Windows-App übernehmen.

Tipp Mit Windows 10 Version 1607 oder höher können Sie UWP-Befehle wie .createpackageapp verwenden, um UWP-Apps zu debuggen. Weitere Informationen finden Sie unter Debuggen einer UWP-App mit WinDbg.

Wo kann PLMDebug abgerufen werden?

PLMDebug.exe ist in den Debugtools für Windows enthalten.

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}"

Parameter

Paket
Der vollständige Name eines Pakets oder die ID eines ausgeführten Prozesses.

DebuggerCommandLine
Eine Befehlszeile zum Öffnen eines Debuggers. Die Befehlszeile muss den vollständigen Pfad zum Debugger enthalten. Wenn der Pfad Leerzeichen enthält, muss er in Anführungszeichen eingeschlossen werden. Die Befehlszeile kann auch Argumente enthalten. Im Folgenden finden Sie einige Beispiele:

"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 [Paket]
Zeigt den Ausführungsstatus für ein installiertes Paket an. Wenn Package nicht angegeben ist, zeigt dieser Befehl die ausgeführten Zustände für alle installierten Pakete an.

/enableDebug-Paket [DebuggerCommandLine]
Erhöht die Anzahl der Debugverweis für ein Paket. Das Paket ist von der PLM-Richtlinie ausgenommen, wenn es über eine Debugverweisanzahl ungleich 0 (null) verfügt. Jeder Aufruf von /enableDebug muss mit einem Aufruf von /disableDebug gekoppelt werden. Wenn Sie DebuggerCommandLine angeben, wird der Debugger angefügt, wenn eine App aus dem Paket gestartet wird.

/terminate-Paket
Beendet ein Paket.

/forceTerminate-Paket
Erzwingt die Beendigung eines Pakets.

Paket "/cleanTerminate"
Hält ein Paket an und beendet es dann.

/suspend-Paket
Hält ein Paket an.

/resume-Paket
Setzt ein Paket fort.

/disableDebug-Paket
Verringert die Anzahl der Debugverweis für ein Paket.

Paket "/enumerateBgTasks"
Auflisten von Hintergrundaufgaben-IDs für ein Paket.

/activateBgTask "{TaskId}"
Aktiviert eine Hintergrundaufgabe. Beachten Sie, dass nicht alle Hintergrundaufgaben mit PLMDebug aktiviert werden können. Die TaskID muss in geschweifte Klammern und Anführungszeichen eingeschlossen werden. Beispiel:

plmdebug.exe /activatebgtask "{29421c11-1e1a-47a4-9121-949ce9e25456}"

Bemerkungen

Sie müssen plmdebug /enableDebug aufrufen, bevor Sie eine der Funktionen zum Anhalten, Fortsetzen oder Beenden aufrufen.

Das TOOL PLMDebug ruft die Methoden der IPackageDebugSettings-Schnittstelle auf. Mit dieser Schnittstelle können Sie die Prozesslebenszyklusverwaltung für Ihre Apps manuell steuern. Über diese Schnittstelle (und somit über dieses Tool) können Sie Ihre Windows-App anhalten, fortsetzen und beenden. Beachten Sie, dass die Methoden der IPackageDebugSettings-Schnittstelle auf ein gesamtes Paket angewendet werden. Anhalten, Fortsetzen und Beenden wirken sich auf alle derzeit ausgeführten Apps im Paket aus.

Beispiele

Beispiel 1

Anfügen eines Debuggers beim Starten der App

Angenommen, Sie verfügen über eine App namens MyApp, die sich in einem Paket namens MyApp_1.0.0.0_x64__tnq5r49etfg3c befindet. Überprüfen Sie, ob Ihr Paket installiert ist, indem Sie die vollständigen Namen und den Ausführungsstatus aller installierten Pakete anzeigen. Geben Sie in einem Eingabeaufforderungsfenster den folgenden Befehl ein.

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
...

Erhöhen Sie die Anzahl der Debugverweis für Ihr Paket, und geben Sie an, dass WinDbg beim Starten der App anfügen soll.

plmdebug /enableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c "C:\Programme (x86)\Windows Kits\8.0\Debuggers\x64\WinDbg.exe"

Wenn Sie Ihre App starten, wird WinDbg angefügt und unterbrochen.

Wenn Sie das Debuggen abgeschlossen haben, trennen Sie den Debugger. Verringern Sie dann die Anzahl der Debugverweis für Ihr Paket.

plmdebug /disableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c

Beispiel 2

Anfügen eines Debuggers an eine app, die bereits ausgeführt wird

Angenommen, Sie möchten WinDbg an MyApp anfügen, die bereits ausgeführt wird. Wählen Sie in WinDbg im Menü Datei die Option An einen Prozess anfügen aus. Notieren Sie sich die Prozess-ID für MyApp. Angenommen, die Prozess-ID lautet 4816.

Erhöhen Sie die Anzahl der Debugverweis für das Paket, das MyApp enthält.

plmdebug /enableDebug 4816

Wählen Sie in WinDbg im Dialogfeld An den Prozess anfügen die Option Prozess 4816 aus, und wählen Sie OK aus. WinDbg wird an MyApp angefügt.

Wenn Sie das Debuggen von MyApp abgeschlossen haben, trennen Sie den Debugger. Verringern Sie dann die Anzahl der Debugverweis für das Paket.

plmdebug /disableDebug 4816

Beispiel 3

Manuelles Anhalten und Fortsetzen der App

Angenommen, Sie möchten Ihre App manuell anhalten und fortsetzen. Erhöhen Sie zunächst die Debugverweisanzahl für das Paket, das Ihre App enthält.

plmdebug /enableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c

Anhalten des Pakets. Der Suspend-Handler Ihrer App wird aufgerufen, was beim Debuggen hilfreich sein kann.

plmdebug /suspend MyApp_1.0.0.0_x64__tnq5r49etfg3c

Wenn Sie das Debuggen abgeschlossen haben, setzen Sie das Paket fort.

plmdebug /resume MyApp_1.0.0.0_x64__tnq5r49etfg3c

Dekrementieren Sie schließlich die Debugverweisanzahl für das Paket.

plmdebug /disableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c

Beispiel 4

Manuelles Aktivieren einer Hintergrundaufgabe

Um eine Hintergrundaufgabe für das Debuggen manuell zu aktivieren, können Sie die Liste der registrierten Hintergrundaufgaben abfragen und dann über plmdebug aktivieren.

Fragen Sie zunächst den Satz der registrierten Hintergrundaufgaben ab:

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}

Wenn Sie sicherstellen möchten, dass die Aufgabe aktiviert wird, aktivieren Sie zuerst den Debugmodus. Beispielsweise werden opportunistische Aufgaben wie TimeTrigger-aktivierte Aufgaben nicht aktiviert, während sich das System im Stromsparmodus befindet. Wenn Sie den Debugmodus für das Paket aktivieren, wird sichergestellt, dass das System die Richtlinien ignoriert, die andernfalls die Aktivierung verhindern würden.

plmdebug /enabledebug MyApp_1.0.0.0_x64__tnq5r49etfg3c

Aktivieren Sie dann die gewünschte Aufgabe mithilfe der Registrierungs-GUID, die Sie aufgelistet haben.

plmdebug /activatebgtask "{50DB0363-D722-4E23-A18F-1EF49B226CC3}"

Weitere Informationen

Auslösen von Anhalte-, Fortsetzungs- und Hintergrundereignissen beim Debuggen von UWP-Apps in Visual Studio

Tools, die in Debugtools für Windows enthalten sind