Agence web » Actualités du digital » Comment déboguer un script PowerShell –

Comment déboguer un script PowerShell –

Logo Powershell

Tout développement de script nécessite généralement un dépannage qui aboutit généralement à l’une des deux approches. Soit en définissant manuellement les valeurs des variables et en sortant ces données lors de l’exécution du script, soit en utilisant le débogage pour définir des points d’arrêt afin d’inspecter les données avant de continuer ou d’abandonner. La capacité à effectuer le débogage est intégrée à PowerShell ISE et à Visual Studio Code.

Comment fonctionne le débogage PowerShell?

Inclus avec Windows PowerShell, PowerShell ISE a été l’environnement de référence traditionnel pour déboguer les scripts PowerShell. Avec un menu intégré pour le débogage et une représentation graphique des points d’arrêt, il est facile de démarrer. Tout d’abord, tout script que vous déboguez doit être enregistré. Ensuite, vous devrez définir des points d’arrêt en utilisant l’une des trois méthodes suivantes.

  • Sur la ligne focalisée, utilisez la touche F9 pour définir un point d’arrêt.
  • Cliquez avec le bouton droit de la souris à côté d’une ligne et choisissez Basculer le point d’arrêt pour définir un point d’arrêt.
  • Utilisez le Set-PSBreakPoint spécifiant une ligne, une variable, une fonction ou un texte correspondant.

Une fois que vous avez défini un point d’arrêt, vous pouvez simplement lancer le débogage en exécutant le script avec F5 ou Debug → Exécuter / Continuer. Une fois que le script atteint le point d’arrêt spécifié, l’exécution sera interrompue et vous devrez effectuer l’une des actions suivantes.

  • Enjamber – Exécute uniquement l’instruction en cours, en s’arrêtant avant l’instruction suivante. Si l’instruction en cours est une fonction ou un script, exécutez l’appel entier avant de s’arrêter.
  • Entrer dans – Similaire à Step Over, exécutez uniquement l’instruction courante, en vous arrêtant avant l’instruction suivante. Au lieu d’exécuter la fonction ou le script entier, s’il est appelé, entrez dans l’appel.
  • Sors – Si dans une fonction, sortez et montez d’un niveau si la fonction est imbriquée. Si dans le script principal, exécutez jusqu’à la fin du script ou au point d’arrêt suivant, selon la première éventualité. Les instructions ignorées sont exécutées mais pas franchies.

Lorsque le script est arrêté à un point d’arrêt, vous pouvez survoler une variable avec le curseur de la souris et voir quelles sont les valeurs d’une variable donnée. De plus, vous pouvez également utiliser la ligne de commande pour générer des variables pour voir l’état actuel. Il y a quelques mises en garde à cela. $_, $Input, $MyInvocation, $PSBoundParameters, et $Args ne fonctionnera pas car ce sont des variables automatiques et non soumises au débogage. Une façon de récupérer ces valeurs consiste à les affecter à une variable intermédiaire qui peut ensuite être définie pour un point d’arrêt.

Débogage PowerShell dans Visual Studio Code

Très similaire au fonctionnement de PowerShell ISE, Visual Studio Code ajoute plusieurs options de débogage très utiles. En outre, VS Code vous permet de déboguer facilement avec PowerShell 7.x alors que l’ISE est traditionnellement limité à Windows PowerShell. En utilisant les mêmes raccourcis clavier que PowerShell ISE, vous pouvez rapidement démarrer le débogage. Mieux encore, vous disposez désormais du volet de débogage dans VS Code, qui consolide une grande partie de la sortie de variable et facilite la lecture d’un instantané de toutes les valeurs de variable dans votre code.

Utilisation du débogage de code VS

Tout comme PowerShell ISE, vous pouvez utiliser F5 pour démarrer une session de débogage interactive. Contrairement à l’ISE, VS Code offre une expérience de débogage bien meilleure et plus utile. Non seulement vous obtenez la console de débogage traditionnelle, indiquée par le [DBG] invite, mais vous avez toutes les variables connues et leur sortie dans le volet de débogage de gauche. Pour améliorer la navigation dans les options de débogage, la barre de débogage supérieure facilite l’entrée, la sortie et le dépassement des points d’arrêt. De plus, vous n’êtes pas obligé de sauvegarder avant de courir!

L’extension PowerShell de VS Code est nécessaire pour que cela fonctionne facilement.

Utilisation des commandes de débogage des commandes

Bien que le débogage strictement à partir de la ligne de commande ne soit pas parfois l’opération la plus simple, vous pouvez le faire à l’aide des commandes de débogage intégrées. Il existe quelques commandes intégrées pour rendre cela facile.

Utiliser le polyvalent Set-PSBreakPoint, vous pouvez rapidement définir un point d’arrêt qui, une fois atteint, vous déposera dans l’invite de commande de débogage. À ce stade, en utilisant les combinaisons de touches standard, vous pouvez rapidement inspecter les variables et continuer ou interrompre l’exécution à ce stade.

Conclusion

Le débogage n’a pas besoin d’être difficile et une fois que vous avez commencé à utiliser l’une des méthodes ci-dessus, vous le trouverez intégré à vos besoins de développement de script. Découvrez comment vous pouvez démarrer avec le débogage PowerShell dès aujourd’hui!

★★★★★