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 Gestion du cycle de vie des processus (PLM). Avec PLMDebug, vous pouvez prendre le contrôle manuel de la suspension, de la reprise et de la fin d’une application Windows.

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

Paquet
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 d’accès complet au 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 package n’est pas spécifié, cette commande affiche les états en cours d’exécution pour tous les packages installés.

Package /enableDebug [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 est attaché au lancement d’une application à partir du package.

/terminatePackage
Met fin à un package.

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

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

/suspendPackage
Suspend un package.

Package /resume
Reprend un package.

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

Package /enumerateBgTasks
É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é dans des accolades et des guillemets. Par exemple :

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

Notes

Vous devez appeler plmdebug /enableDebug avant d’appeler l’une des fonctions de suspension, de reprise ou d’arrêt.

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. Grâce à cette interface (et par conséquent, à l’aide de cet outil), vous pouvez suspendre, reprendre et mettre fin à votre application Windows. Notez que les méthodes de l’interface IPackageDebugSettings s’appliquent à un package entier. La suspension, la reprise et l’arrêt affectent toutes les applications en cours d’exécution dans le package.

Exemples

Exemple 1

Attacher un débogueur lors du lancement de votre application

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 en cours 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 attache au lancement de votre application.

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 s’attache et s’interrompt.

Une fois le débogage terminé, détachez le débogueur. Ensuite, décrémentez 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 qui est déjà en cours d’exécution

Supposons que vous souhaitiez 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 est 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 processus 4816, puis OK. WinDbg s’attache à MyApp.

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

plmdebug /disableDebug 4816

Exemple 3

Suspendre et reprendre manuellement votre application

Supposons que vous souhaitiez suspendre et reprendre manuellement votre application. Tout d’abord, incrémentez 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 être utile pour le débogage.

plmdebug /suspend MyApp_1.0.0.0_x64__tnq5r49etfg3c

Une fois le débogage terminé, reprenez 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 de tâches en arrière-plan inscrites :

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}

Si vous souhaitez garantir l’activation de la tâche, activez d’abord le mode de débogage. Par exemple, les tâches opportunistes telles que les tâches activées par TimeTrigger ne s’activent pas tant que le système est dans l’économiseur de batterie. L’activation du mode de débogage sur le package garantit que le système ignore les stratégies qui empêcheraient 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 de suspension, de reprise et d’arrière-plan pour le débogage des applications UWP dans Visual Studio

Outils inclus dans outils de débogage pour Windows