Set-PSBreakpoint
Hiermee stelt u een onderbrekingspunt in op een regel, opdracht of variabele.
Syntax
Set-PSBreakpoint
[-Action <ScriptBlock>]
[[-Column] <Int32>]
[-Line] <Int32[]>
[-Script] <String[]>
[<CommonParameters>]
Set-PSBreakpoint
[-Action <ScriptBlock>]
-Command <String[]>
[[-Script] <String[]>]
[<CommonParameters>]
Set-PSBreakpoint
[-Action <ScriptBlock>]
[[-Script] <String[]>]
-Variable <String[]>
[-Mode <VariableAccessMode>]
[<CommonParameters>]
Description
Met de Set-PSBreakpoint
cmdlet wordt een onderbrekingspunt ingesteld in een script of in een opdracht die in de huidige sessie wordt uitgevoerd. U kunt gebruiken Set-PSBreakpoint
om een onderbrekingspunt in te stellen voordat u een script uitvoert of een opdracht uitvoert, of tijdens foutopsporing, wanneer deze wordt gestopt bij een ander onderbrekingspunt.
Set-PSBreakpoint
kan geen onderbrekingspunt instellen op een externe computer. Als u fouten wilt opsporen in een script op een externe computer, kopieert u het script naar de lokale computer en maakt u vervolgens lokaal fouten op.
Elke Set-PSBreakpoint
opdracht maakt een van de volgende drie typen onderbrekingspunten:
- Regelonderbrekingspunt: hiermee stelt u onderbrekingspunten in op bepaalde lijn- en kolomcoördinaten.
- Opdrachtonderbrekingspunt: hiermee worden onderbrekingspunten ingesteld voor opdrachten en functies.
- Variabel onderbrekingspunt: hiermee stelt u onderbrekingspunten in op variabelen.
U kunt een onderbrekingspunt instellen op meerdere regels, opdrachten of variabelen in één Set-PSBreakpoint
opdracht, maar met elke Set-PSBreakpoint
opdracht wordt slechts één type onderbrekingspunt ingesteld.
Bij een onderbrekingspunt stopt PowerShell tijdelijk met uitvoeren en krijgt het foutopsporingsprogramma de controle. De opdrachtprompt wordt gewijzigd in DBG\>
en er wordt een set opdrachten voor het foutopsporingsprogramma beschikbaar voor gebruik. U kunt echter de parameter Action gebruiken om een alternatief antwoord op te geven, zoals voorwaarden voor het onderbrekingspunt of instructies voor het uitvoeren van aanvullende taken, zoals logboekregistratie of diagnostische gegevens.
De Set-PSBreakpoint
cmdlet is een van de verschillende cmdlets die zijn ontworpen voor foutopsporing in PowerShell-scripts.
Zie about_Debuggers voor meer informatie over het PowerShell-foutopsporingsprogramma.
Voorbeelden
Voorbeeld 1: Een onderbrekingspunt instellen op een regel
In dit voorbeeld wordt een onderbrekingspunt ingesteld op regel 5 in het Sample.ps1 script. Wanneer het script wordt uitgevoerd, stopt de uitvoering direct voordat regel 5 wordt uitgevoerd.
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
Wanneer u een nieuw onderbrekingspunt per regelnummer instelt, genereert de Set-PSBreakpoint
cmdlet een regelonderbrekingspuntobject (System.Management.Automation.LineBreakpoint) dat de onderbrekingspunt-id en het aantal treffers bevat.
Voorbeeld 2: Een onderbrekingspunt instellen voor een functie
In dit voorbeeld wordt een opdrachtonderbrekingspunt voor de Increment
functie gemaakt in de cmdlet Sample.ps1. Het script stopt met uitvoeren direct voor elke aanroep van de opgegeven functie.
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
Het resultaat is een opdrachtonderbrekingspuntobject. Voordat het script wordt uitgevoerd, is de waarde van de eigenschap HitCount 0.
Voorbeeld 3: Een onderbrekingspunt instellen voor een variabele
In dit voorbeeld wordt een onderbrekingspunt ingesteld op de variabele Server in het script Sample.ps1. De parameter Mode met de waarde ReadWrite wordt gebruikt om de uitvoering te stoppen wanneer de waarde van de variabele wordt gelezen en net voordat de waarde wordt gewijzigd.
Set-PSBreakpoint -Script "sample.ps1" -Variable "Server" -Mode ReadWrite
Voorbeeld 4: Een onderbrekingspunt instellen voor elke opdracht die begint met opgegeven tekst
In dit voorbeeld wordt een onderbrekingspunt ingesteld voor elke opdracht in het Sample.ps1 script dat begint met 'schrijven', zoals Write-Host
.
Set-PSBreakpoint -Script Sample.ps1 -Command "write*"
Voorbeeld 5: een onderbrekingspunt instellen op basis van de waarde van een variabele
In dit voorbeeld wordt de uitvoering van de DiskTest
functie in het Test.ps1 script alleen gestopt wanneer de waarde van de $Disk
variabele groter is dan 2.
Set-PSBreakpoint -Script "test.ps1" -Command "DiskTest" -Action { if ($Disk -gt 2) { break } }
De waarde van de actie is een scriptblok waarmee de waarde van de $Disk
variabele in de functie wordt getest.
De actie gebruikt het break
trefwoord om de uitvoering te stoppen als aan de voorwaarde wordt voldaan. Het alternatief (en de standaardinstelling) is Doorgaan.
Voorbeeld 6: Een onderbrekingspunt instellen voor een functie
In dit voorbeeld wordt een onderbrekingspunt voor de CheckLog
functie ingesteld. Omdat de opdracht geen script opgeeft, wordt het onderbrekingspunt ingesteld op alles wat in de huidige sessie wordt uitgevoerd. Het foutopsporingsprogramma wordt onderbroken wanneer de functie wordt aangeroepen, niet wanneer deze wordt gedeclareerd.
PS> Set-PSBreakpoint -Command "checklog"
Id : 0
Command : checklog
Enabled : True
HitCount : 0
Action :
function CheckLog {
>> get-eventlog -log Application |
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG: Function breakpoint on 'prompt:Checklog'
Voorbeeld 7: Onderbrekingspunten instellen op meerdere regels
In dit voorbeeld worden drie regelonderbrekingspunten ingesteld in het Sample.ps1 script. Er wordt één onderbrekingspunt ingesteld op kolom 2 op elk van de regels die in het script zijn opgegeven. De actie die is opgegeven in de parameter Actie is van toepassing op alle onderbrekingspunten.
PS C:\> 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
Parameters
-Action
Hiermee geeft u opdrachten op die worden uitgevoerd op elk onderbrekingspunt in plaats van op te breken. Voer een scriptblok in dat de opdrachten bevat. U kunt deze parameter gebruiken om voorwaardelijke onderbrekingspunten in te stellen of om andere taken uit te voeren, zoals testen of logboekregistratie.
Als deze parameter wordt weggelaten of als er geen actie is opgegeven, stopt de uitvoering bij het onderbrekingspunt en wordt het foutopsporingsprogramma gestart.
Wanneer de parameter Action wordt gebruikt, wordt het actiescriptblok uitgevoerd op elk onderbrekingspunt. De uitvoering wordt niet gestopt, tenzij het scriptblok het trefwoord Break bevat. Als u het trefwoord Doorgaan in het scriptblok gebruikt, wordt de uitvoering hervat tot het volgende onderbrekingspunt.
Zie about_Script_Blocks, about_Break en about_Continue voor meer informatie.
Type: | ScriptBlock |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Column
Hiermee geeft u het kolomnummer op van de kolom in het scriptbestand waarop de uitvoering stopt. Voer slechts één kolomnummer in. De standaardwaarde is kolom 1.
De kolomwaarde wordt gebruikt met de waarde van de parameter Line om het onderbrekingspunt op te geven. Als de parameter Line meerdere regels opgeeft, stelt de parameter Kolom een onderbrekingspunt in op de opgegeven kolom op elk van de opgegeven regels. PowerShell stopt met uitvoeren vóór de instructie of expressie die het teken bevat op de opgegeven regel- en kolompositie.
Kolommen worden geteld vanaf de linkerbovenhoek vanaf kolomnummer 1 (niet 0). Als u een kolom opgeeft die niet in het script bestaat, wordt er geen fout gedeclareerd, maar wordt het onderbrekingspunt nooit uitgevoerd.
Type: | Int32 |
Position: | 2 |
Default value: | 1 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Command
Hiermee stelt u een onderbrekingspunt voor de opdracht in. Voer cmdletnamen in, zoals Get-Process
, of functienamen. Jokertekens zijn toegestaan.
De uitvoering stopt net voordat elk exemplaar van elke opdracht wordt uitgevoerd. Als de opdracht een functie is, stopt de uitvoering telkens wanneer de functie wordt aangeroepen en bij elke sectie BEGIN, PROCES en END.
Type: | String[] |
Aliases: | C |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Line
Hiermee stelt u een regelonderbrekingspunt in een script in. Voer een of meer regelnummers in, gescheiden door komma's. PowerShell stopt onmiddellijk voordat de instructie wordt uitgevoerd die begint op elk van de opgegeven regels.
Regels worden geteld vanaf de linkerbovenhoek van het scriptbestand, beginnend met regelnummer 1 (niet 0). Als u een lege regel opgeeft, stopt de uitvoering vóór de volgende niet-lege regel. Als de lijn buiten het bereik valt, wordt het onderbrekingspunt nooit bereikt.
Type: | Int32[] |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Mode
Hiermee geeft u de toegangsmodus op die variabele onderbrekingspunten activeert. De standaardwaarde is Schrijven.
Deze parameter is alleen geldig wanneer de variabele parameter wordt gebruikt in de opdracht. De modus is van toepassing op alle onderbrekingspunten die zijn ingesteld in de opdracht. De aanvaardbare waarden voor deze parameter zijn:
- Schrijven : stopt de uitvoering direct voordat een nieuwe waarde naar de variabele wordt geschreven.
- Lezen : stopt de uitvoering wanneer de variabele wordt gelezen, dat wil gezegd, wanneer de waarde wordt geopend, die moet worden toegewezen, weergegeven of gebruikt. In de leesmodus stopt de uitvoering niet wanneer de waarde van de variabele verandert.
- ReadWrite : stopt de uitvoering wanneer de variabele wordt gelezen of geschreven.
Type: | VariableAccessMode |
Accepted values: | Read, Write, ReadWrite |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Script
Hiermee geeft u een matrix met scriptbestanden op waarin deze cmdlet een onderbrekingspunt instelt. Voer de paden en bestandsnamen van een of meer scriptbestanden in. Als de bestanden zich in de huidige map bevinden, kunt u het pad weglaten. Jokertekens zijn toegestaan.
Standaard worden variabele onderbrekingspunten en opdrachtonderbrekingspunten ingesteld voor elke opdracht die wordt uitgevoerd in de huidige sessie. Deze parameter is alleen vereist bij het instellen van een regelonderbrekingspunt.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Variable
Hiermee geeft u een matrix met variabelen waarvoor deze cmdlet onderbrekingspunten instelt. Voer een door komma's gescheiden lijst met variabelen in zonder dollartekens ($
).
Gebruik de parameter Mode om de toegangsmodus te bepalen die de onderbrekingspunten activeert. De standaardmodus, Schrijven, stopt de uitvoering vlak voordat een nieuwe waarde naar de variabele wordt geschreven.
Type: | String[] |
Aliases: | V |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
None
U kunt invoer niet doorspezen naar Set-PSBreakpoint
.
Uitvoerwaarden
Breakpoint object (System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint)
Set-PSBreakpoint
retourneert een -object dat elk onderbrekingspunt vertegenwoordigt dat wordt ingesteld.
Notities
Set-PSBreakpoint
kan geen onderbrekingspunt instellen op een externe computer. Als u fouten wilt opsporen in een script op een externe computer, kopieert u het script naar de lokale computer en maakt u vervolgens lokaal fouten op.- Wanneer u een onderbrekingspunt instelt op meer dan één regel, opdracht of variabele,
Set-PSBreakpoint
wordt voor elke vermelding een onderbrekingspuntobject gegenereerd. - Wanneer u een onderbrekingspunt instelt voor een functie of variabele bij de opdrachtprompt, kunt u het onderbrekingspunt instellen voor of nadat u de functie of variabele hebt gemaakt.