Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
dev:powershell:debogage_des_scripts [2023/07/03 16:28] – créée yoann | dev:powershell:debogage_des_scripts [2023/07/04 09:58] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag> | {{tag> | ||
- | : | ||
====== PowerShell : Débogage des scripts ====== | ====== PowerShell : Débogage des scripts ====== | ||
+ | ===== Généralités ===== | ||
- | Un script ou une fonction peut se comporter comme une cmdlet compilée si on lui ajoute l' | + | Lorsque des erreurs se produisent, elles sont stockées dans le tableau **$Error**. Quand une nouvelle erreur est générée, elle est insérée à $Error[0], et l’index des autres erreurs est augmenté d’une unité. |
+ | |||
+ | Pour rendre le texte de résolution des problèmes plus facilement identifiable, | ||
+ | |||
+ | |||
+ | ===== Utilisation des switchs Verbose et Debug ===== | ||
+ | |||
+ | Un script ou une fonction peut se comporter comme une cmdlet compilée si on lui ajoute l' | ||
Ligne 46: | Ligne 53: | ||
DÉBOGUER : | DÉBOGUER : | ||
</ | </ | ||
+ | |||
+ | ===== Exécution du débogueur ===== | ||
+ | |||
+ | L' | ||
+ | |||
+ | <code powershell> | ||
+ | # L' | ||
+ | Wait-Debugger | ||
+ | </ | ||
+ | |||
+ | Une console en mode interactif est disponible dans le débogueur, le prompt contient **[DBG]**, saisir < | ||
+ | |||
===== Utiliser les points d' | ===== Utiliser les points d' | ||
- | Le point d' | + | Le point d' |
- | On peut définir un point d'arrêt | + | Plusieurs options existent pour la création de points |
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
| | ||
<code powershell> | <code powershell> | ||
- | Set-PSBreakpoint -Script ' | + | # Depuis la console on peut définir un ou plusieurs points d' |
+ | |||
+ | # Stoppera l' | ||
+ | Set-PSBreakpoint -Script ' | ||
+ | |||
+ | # Stoppera l' | ||
+ | Set-PSBreakpoint -Script .\aTestScript.ps1 -Variable BatteryLevel -Mode Read | ||
+ | |||
+ | # Stoppera l' | ||
+ | Set-PSBreakpoint -Script .\aTestScript.ps1 -Command Write-Verbose | ||
</ | </ | ||
+ | A ce stade les points d' | ||
+ | |||
+ | <code powershell> | ||
+ | # Lister les points d' | ||
+ | Get-PSBreakpoint | ||
+ | |||
+ | ID Script | ||
+ | -- ------ | ||
+ | 1 aTestScript.ps1 | ||
+ | 2 aTestScript.ps1 | ||
+ | 3 aTestScript.ps1 | ||
+ | </ | ||
+ | |||
+ | On appelle le script depuis la console, il bascule en mode débogage dès qu'un point d' | ||
+ | <code powershell> | ||
+ | .\aTestScript.ps1 -BatteryLevel High | ||
+ | Appuyez sur Point d' | ||
+ | |||
+ | Au caractère C: | ||
+ | + For ($i=0; $i -lt 3; $i++) { | ||
+ | + ~~~~ | ||
+ | [DBG]: PS C: | ||
+ | </ | ||
+ | |||
+ | ===== Supprimer les points d' | ||
+ | |||
+ | Chaque point d' | ||
+ | |||
+ | <code powershell> | ||
+ | Remove-PSBreakpoint -Id 1 | ||
+ | Remove-PSBreakpoint -Id 2 | ||
+ | Remove-PSBreakpoint -Id 3 | ||
+ | </ | ||
+ | |||
+ | ===== Gestion des erreurs ===== | ||
+ | |||
+ | Quand une commande PowerShell génère une erreur, il peut s’agir d’une erreur avec fin d’exécution (si le traitement ne peut pas se poursuivre) ou d’une erreur sans fin d’exécution. La variable globale **$ErrorActionPreference** permet à l' | ||
+ | |||
+ | Les différents valeurs possibles sont : | ||
+ | |||
+ | ^ Continue | Afficher le message et continue l' | ||
+ | ^ SilentlyContinue | Continue l' | ||
+ | ^ Inquire | Interrompt l’exécution et demande à l' | ||
+ | ^ Stop | Devra être géré par le script comme une erreur avec fin d’exécution via les exceptions ou provoquera l' | ||
+ | |||
+ | |||
+ | <code powershell> | ||
+ | # Redéfinit le comportement par défaut des erreurs sans fin d’exécution | ||
+ | # pour le processus courant. Demande à l' | ||
+ | $ErrorActionPreference = ' | ||
+ | |||
+ | </ | ||
===== Références ===== | ===== Références ===== | ||
* https:// | * https:// | ||
* https:// | * https:// |