Partager via


PLMDebug

PLMDebug.exe est un outil qui vous permet d’utiliser le débogueur Windows pour déboguer l’application Windows, qui s’exécute sous Process Lifecycle Management (PLM). Avec PLMDebug, vous pouvez prendre un contrôle manuel de la suspension, de la reprise et de la fin d’une application Windows.

Conseil avec Windows 10, version 1607 ou ultérieure, vous pouvez utiliser les commandes UWP, telles que .createpackageapp pour déboguer des applications UWP. Pour plus d’informations, consultez Débogage d’une application UWP à l’aide de WinDbg.

Où obtenir PLMDebug

PLMDebug.exe est inclus dans les outils de débogage pour 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}"

Paramètres

Colis
Nom complet d’un package ou id d’un processus en cours d’exécution.

DébogueurCommandLine
Ligne de commande pour ouvrir un débogueur. La ligne de commande doit inclure le chemin complet du débogueur. Si le chemin a des espaces vides, il doit être placé entre guillemets. La ligne de commande peut également inclure des arguments. Voici quelques exemples :

"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 [Package]
Affiche l’état d’exécution d’un package installé. Si le package n’est pas spécifié, cette commande affiche les états en cours d’exécution pour tous les packages installés.

/enableDebug Package [DebuggerCommandLine]
Incrémente le nombre de références de débogage pour un package. Le package est exempté de la stratégie PLM s’il a un nombre de références de débogage différent de zéro. Chaque appel à /enableDebug doit être associé à un appel à /disableDebug. Si vous spécifiez DebuggerCommandLine, le débogueur s’attache quand une application à partir du package est lancée.

/terminer Colis
Met fin à un package.

/forceTerminate Colis
Force l’arrêt d’un package.

/cleanTerminate Colis
Suspend, puis met fin à un package.

/suspendre Colis
Suspend un package.

/reprendre Colis
Reprend un package.

/disableDebug Colis
Décrémente le nombre de références de débogage pour un package.

/enumerateBgTasks Colis
Énumérez les ID de tâche en arrière-plan d’un package.

/activateBgTask « {TaskId} »
Active une tâche en arrière-plan. Notez que toutes les tâches en arrière-plan ne peuvent pas être activées à l’aide de PLMDebug. L’ID de tâche doit être encapsulé entre accolades et guillemets. Par exemple :

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

Notes

Vous devez appeler plmdebug /enableDebug avant d’appeler l’une des fonctions suspend, resume ou terminate.

L’outil PLMDebug appelle les méthodes de l’interface IPackageDebugSettings. Cette interface vous permet de contrôler manuellement la gestion du cycle de vie des processus pour vos applications. Par le biais de cette interface (et par conséquent, via cet outil), vous pouvez suspendre, reprendre et arrêter votre application Windows. Notez que les méthodes de l’interface IPackageDebugSettings s’appliquent à un package entier. Suspendre, reprendre et arrêter affecte toutes les applications en cours d’exécution dans le package.

Exemples

Exemple 1 :

Attacher un débogueur lorsque votre application est lancée

Supposons que vous ayez une application nommée MyApp qui se trouve dans un package nommé MyApp_1.0.0.0_x64___tnq5r49etfg3c. Vérifiez que votre package est installé en affichant les noms complets et les états d’exécution de tous les packages installés. Dans une fenêtre d’invite de commandes, entrez la commande suivante.

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

Incrémentez le nombre de références de débogage pour votre package et spécifiez que vous souhaitez que WinDbg s’attache lorsque votre application est lancée.

plmdebug /enableDebug MyApp_1.0.0.0_x64__tnq5r49etfg3c « C :\Program Files (x86)\Windows Kits\8.0\Debuggers\x64\WinDbg.exe »

Lorsque vous lancez votre application, WinDbg attache et se décompose.

Une fois le débogage terminé, détachez le débogueur. Décrémentez ensuite le nombre de références de débogage pour votre package.

plmdebug /disableDebug MyApp_1.0.0.0_x64___tnq5r49etfg3c

Exemple 2

Attacher un débogueur à une application en cours d’exécution

Supposons que vous souhaitez attacher WinDbg à MyApp, qui est déjà en cours d’exécution. Dans WinDbg, dans le menu Fichier, choisissez Attacher à un processus. Notez l’ID de processus pour MyApp. Supposons que l’ID de processus soit 4816.

Incrémentez le nombre de références de débogage pour le package qui contient MyApp.

plmdebug /enableDebug 4816

Dans WinDbg, dans la boîte de dialogue Attacher au processus , sélectionnez le processus 4816, puis sélectionnez OK. WinDbg s’attache à MyApp.

Une fois que vous avez terminé le débogage de MyApp, détachez le débogueur. Décrémentez ensuite le nombre de références de débogage pour le package.

plmdebug /disableDebug 4816

Exemple 3

Suspendre et relancer manuellement votre application

Supposons que vous souhaitez suspendre et reprendre manuellement votre application. Commencez par incrémenter le nombre de références de débogage pour le package qui contient votre application.

plmdebug /enableDebug MyApp_1.0.0.0_x64___tnq5r49etfg3c

Suspendez le package. Le gestionnaire de suspension de votre application est appelé, ce qui peut s’avérer utile pour le débogage.

plmdebug /suspend MyApp_1.0.0.0_x64___tnq5r49etfg3c

Une fois le débogage terminé, relancez le package.

plmdebug /resume MyApp_1.0.0.0_x64___tnq5r49etfg3c

Enfin, décrémentez le nombre de références de débogage pour le package.

plmdebug /disableDebug MyApp_1.0.0.0_x64___tnq5r49etfg3c

Exemple 4

Activer manuellement une tâche en arrière-plan

Pour activer manuellement une tâche en arrière-plan pour le débogage, vous pouvez interroger la liste des tâches en arrière-plan inscrites, puis l’activer via plmdebug.

Commencez par interroger l’ensemble des tâches en arrière-plan inscrites :

plmdebug /enumeratebgtasks MyApp_1.0.0_x64__tnq5r49etfg3c

Package full name is MyApp_1.0.0.0_x64__tnq5r49etfg3c.
Background Tasks:
SampleTask : {50DB0363-D722-4E23-A18F-1EF49B226CC3}

Si vous souhaitez garantir que la tâche s’active, activez d’abord le mode débogage. Par exemple, les tâches opportunistes telles que les tâches activées par TimeTrigger ne s’activent pas pendant que le système est dans l’économiseur de batterie. L’activation du mode débogage sur le package garantit que le système ignore les stratégies qui empêchent l’activation dans le cas contraire.

plmdebug /enabledebug MyApp_1.0.0.0_x64___tnq5r49etfg3c

Activez ensuite la tâche souhaitée à l’aide de son GUID d’inscription que vous avez énuméré.

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

Voir aussi

Comment déclencher des événements d’interruption, de reprise et d’arrière-plan lors du débogage d’applications UWP dans Visual Studio

Outils inclus dans les outils de débogage pour Windows