Définit un point d'arrêt sur une ligne, commande ou variable.

Syntaxe

Set-PSBreakpoint -Command <string[]> [[-Script] <string[]>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint [-Script] <string[]> [-Line] <Int32[]> [[-Column] <int>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint -Variable <string[]> [[-Script] <string[]>] [-Mode {<Read> | <Write> | <ReadWrite>}] [-Action <scriptblock>] [<CommonParameters>]

Description

L'applet de commande Set-PSBreakpoint définit un point d'arrêt dans un script ou dans toute commande exécutée dans la session active. Vous pouvez utiliser Set-PSBreakpoint pour définir un point d'arrêt avant d'exécuter un script ou une commande, ou en cours de débogage, en cas d'arrêt à un autre point d'arrêt.

Remarque : Set-PSBreakpoint ne peut pas définir de point d'arrêt sur un ordinateur distant. Pour déboguer un script sur un ordinateur distant, copiez le script sur l'ordinateur local, puis déboguez-le localement.

Chaque commande Set-PSBreakpoint crée l'un des trois types de points d'arrêt suivants :

-- Point d'arrêt de ligne : définit les points d'arrêt aux coordonnées spécifiques d'une ligne et colonne.

-- Point d'arrêt de commande : définit les points d'arrêt sur des commandes et fonctions.

-- Point d'arrêt de variable : définit les points d'arrêt sur des variables.

Vous pouvez définir un point d'arrêt sur plusieurs lignes, commandes ou variables d'une commande Set-PSBreakpoint unique, mais chaque commande Set-PSBreakpoint définit un seul type de point d'arrêt.

À un point d'arrêt, Windows PowerShell cesse temporairement son exécution et transfère le contrôle au débogueur. L'invite de commandes devient « DBG > », et un jeu de commandes de débogage devient disponible. Toutefois, vous pouvez utiliser le paramètre Action pour spécifier une autre réponse, telle que des conditions pour le point d'arrêt ou des instructions pour effectuer des tâches supplémentaires telles qu'une journalisation ou un diagnostic.

Set-PSBreakpoint est l'une des applets de commande conçues pour le débogage des scripts Windows PowerShell. Pour plus d'informations sur le débogueur Windows PowerShell, consultez about_Debuggers.

Paramètres

-Action <scriptblock>

Spécifie les commandes qui s'exécutent à chaque point d'arrêt au lieu d'interrompre le processus. Entrez un bloc de script contenant les commandes. Vous pouvez utiliser ce paramètre pour définir des points d'arrêt conditionnels ou pour effectuer d'autres tâches, telles qu'un test ou une journalisation.

Si ce paramètre est omis, ou si aucune action n'est spécifiée, l'exécution s'arrête au point d'arrêt, et le débogueur démarre.

Lorsque le paramètre Action est utilisé, le bloc de script Action s'exécute à chaque point d'arrêt. L'exécution ne s'arrête pas, à moins que le bloc de script n'inclue le mot clé Break. Si vous utilisez le mot clé Continue dans le bloc de script, l'exécution continue jusqu'au point d'arrêt suivant.

Pour plus d'informations, consultez about_Script_Blocks, about_Break et about_Continue.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Column <int>

Spécifie le numéro de la colonne, dans le fichier de script, sur laquelle l'exécution s'arrête. Entrez un seul numéro de colonne. La valeur par défaut est la colonne 1.

La valeur Column est utilisée avec la valeur du paramètre Line pour spécifier le point d'arrêt. Si le paramètre Line spécifie plusieurs lignes, le paramètre Column définit un point d'arrêt à la colonne spécifiée sur chaque ligne spécifiée. Windows PowerShell cesse son exécution avant l'instruction ou l'expression qui inclut le caractère à la position de ligne et de colonne spécifiée.

Les colonnes sont comptées à partir de la marge supérieure gauche en commençant par le numéro de colonne 1 (et non pas 0). Si vous spécifiez une colonne qui n'existe pas dans le script, aucune erreur n'est déclarée, mais le point d'arrêt n'est jamais exécuté.

Obligatoire ?

false

Position ?

3

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Command <string[]>

Définit un point d'arrêt de commande. Entrez des noms de commandes, tels que « Get-Process », ou des noms de fonctions. Les caractères génériques sont autorisés.

L'exécution s'arrête juste avant l'exécution de chaque instance de chaque commande. Si la commande est une fonction, l'exécution s'arrête chaque fois que la fonction est appelée et à chaque section BEGIN, PROCESS et END.

Obligatoire ?

true

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

true

-Line <Int32[]>

Définit un point d'arrêt de ligne dans un script. Entrez un ou plusieurs numéros de ligne, séparés par des virgules. Windows PowerShell s'arrête immédiatement avant d'exécuter l'instruction qui commence sur chacune des lignes spécifiées.

Les lignes sont comptées à partir de la marge supérieure gauche du fichier de script en commençant par le numéro de ligne 1 (et non pas 0). Si vous spécifiez une ligne vide, l'exécution s'arrête avant la ligne non vide suivante. Si la ligne est hors limites, le point d'arrêt n'est jamais atteint.

Obligatoire ?

true

Position ?

2

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Mode <VariableAccessMode>

Détermine le mode d'accès qui déclenche les points d'arrêt de variables. La valeur par défaut est Write.

Ce paramètre est valide uniquement lorsque le paramètre Variable est utilisé dans la commande. Le mode s'applique à tous les points d'arrêt définis dans la commande.

Les valeurs valides sont :

-- Write : arrête immédiatement l'exécution avant qu'une nouvelle valeur soit écrite dans la variable.

-- Read : arrête l'exécution lorsque la variable est lue, à savoir lorsque sa valeur fait l'objet d'un accès (valeur affectée, affichée ou utilisée). En mode de lecture, l'exécution ne s'arrête pas lorsque la valeur de la variable change.

-- ReadWrite : arrête l'exécution lorsque la variable est lue ou écrite.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Script <string[]>

Définit un point d'arrêt dans chacun des fichiers de script spécifiés. Entrez le chemin d'accès et le nom d'un ou de plusieurs fichiers de script. Si les fichiers se trouvent dans le répertoire actif, vous pouvez omettre le chemin d'accès. Les caractères génériques sont autorisés.

Par défaut, les points d'arrêt de variables et de commandes sont définis sur toute commande qui s'exécute dans la session active. Ce paramètre est obligatoire uniquement lors de la définition d'un point d'arrêt de ligne.

Obligatoire ?

false

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

true

-Variable <string[]>

Définit un point d'arrêt de variable. Entrez une liste de variables séparées par des virgules sans le symbole dollar ($).

Utilisez les paramètres Mode pour déterminer le mode d'accès qui déclenche les points d'arrêt. Le mode par défaut, Write, arrête l'exécution juste avant qu'une nouvelle valeur soit écrite dans la variable.

Obligatoire ?

true

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

Aucun

Vous ne pouvez pas diriger d'entrée vers Set-PSBreakpoint.

Sorties

Objet point d'arrêt (System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint)

Set-PSBreakpoint retourne un objet représentant chaque point d'arrêt qu'il définit.

Remarques

Set-PSBreakpoint ne peut pas définir de point d'arrêt sur un ordinateur distant. Pour déboguer un script sur un ordinateur distant, copiez le script sur l'ordinateur local, puis déboguez-le localement.

Lorsque vous définissez un point d'arrêt sur plusieurs lignes, commandes ou variables, Set-PSBreakpoint génère un objet point d'arrêt pour chaque entrée.

Lorsque vous définissez un point d'arrêt sur une fonction ou une variable à l'invite de commande, vous pouvez définir ce point d'arrêt avant ou après la création de la fonction ou de la variable.

Exemple 1

C:\PS>set-psbreakpoint -script sample.ps1 -line 5

Column     : 0
Line       : 5
Action     :
Enabled    : True
HitCount   : 0
Id         : 0
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Description
-----------
Cette commande définit un point d'arrêt à la ligne 5 du script Sample.ps1. Par conséquent, lorsque le script s'exécute, il s'arrête immédiatement avant la ligne 5.

Lorsque vous définissez un nouveau point d'arrêt par numéro de ligne, l'applet de commande Set-PSBreakpoint génère un objet point d'arrêt de ligne (System.Management.Automation.LineBreakpoint) qui inclut l'ID de point d'arrêt et le nombre d'accès, comme indiqué dans l'exemple de sortie suivant.






Exemple 2

C:\PS>set-psbreakpoint -command Increment -script sample.ps1

Command    : Increment
Action     :
Enabled    : True
HitCount   : 0
Id         : 1
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Description
-----------
Cette commande crée un point d'arrêt de commande sur la fonction Increment de l'applet de commande Sample.ps1. Le script cesse de s'exécuter immédiatement avant chaque appel à la fonction spécifiée.

Le résultat est un objet point d'arrêt de commande. Avant l'exécution du script, la valeur de la propriété HitCount est 0.






Exemple 3

C:\PS>set-psbreakpoint -script sample.ps1 -variable Server -Mode ReadWrite

Description
-----------
Cette commande définit un point d'arrêt sur la variable Server du script Sample.ps1. Elle utilise le paramètre Mode avec la valeur ReadWrite pour arrêter l'exécution lorsque la valeur de la variable est lue et juste avant que la valeur change.






Exemple 4

C:\PS>set-psbreakpoint -script Sample.ps1 -command "write*"

Description
-----------
Cette commande définit un point d'arrêt sur chaque commande du script Sample.ps1 commençant par « write », telle que « write-host ».






Exemple 5

C:\PS>set-psbreakpoint -script test.ps1 -command DiskTest `
  -action { (if $disk -gt 2) { break } }

Description
-----------
Cette commande interrompt l'exécution à la fonction DiskTest du script Test.ps1 uniquement lorsque la valeur de la variable $disk est supérieure à 2.

Elle utilise l'applet de commande Set-PSBreakpoint pour définir un point d'arrêt de commande sur la fonction DiskTest. La valeur de l'action est un bloc de script qui teste la valeur de la variable $disk dans la fonction.

L'action utilise le mot clé BREAK pour arrêter l'exécution si la condition est rencontrée. La valeur alternative (et par défaut) est CONTINUE.






Exemple 6

C:\PS>set-psbreakpoint -command checkpoint-computer

Id       : 0
Command  : checkpoint-computer
Enabled  : True
HitCount : 0
Action   :

C:\PS> function CheckLog {
>> get-eventlog -log Application | 
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
C:\PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG:  Function breakpoint on 'prompt:Checklog'
C:\PS>>>

Description
-----------
Cette commande définit un point d'arrêt sur la fonction CheckLog. Étant donné que la commande ne spécifie pas de script, le point d'arrêt est défini sur tout élément qui s'exécute dans la session active. Le débogueur arrête l'exécution lorsque la fonction est appelée, pas lorsqu'elle est déclarée.






Exemple 7

C:\PS>set-psbreakpoint -script sample.ps1 -line 1, 14, 19 -column 2 -action {&(log.ps1)}

Column     : 2
Line       : 1
Action     :
Enabled    : True
HitCount   : 0
Id         : 6
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 14
Action     :
Enabled    : True
HitCount   : 0
Id         : 7
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 19
Action     :
Enabled    : True
HitCount   : 0
Id         : 8
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Description
-----------
Cette commande définit trois points d'arrêt de ligne dans le script Sample.ps1. Elle définit un point d'arrêt au niveau de la colonne 2 sur chaque ligne spécifiée dans le script. L'action spécifiée dans le paramètre Action s'applique à tous les points d'arrêt.






Voir aussi




Table des matières