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[]>
   [-Runspace <Runspace>]
   [<CommonParameters>]
Set-PSBreakpoint
   [-Action <ScriptBlock>]
   -Command <String[]>
   [[-Script] <String[]>]
   [-Runspace <Runspace>]
   [<CommonParameters>]
Set-PSBreakpoint
   [-Action <ScriptBlock>]
   [[-Script] <String[]>]
   -Variable <String[]>
   [-Mode <VariableAccessMode>]
   [-Runspace <Runspace>]
   [<CommonParameters>]

Description

Met Set-PSBreakpoint de cmdlet wordt een onderbrekingspunt ingesteld in een script of in een opdracht die wordt uitgevoerd in de huidige sessie. U kunt Set-PSBreakpoint een onderbrekingspunt instellen voordat u een script uitvoert of een opdracht uitvoert, of tijdens foutopsporing, wanneer deze is gestopt bij een ander onderbrekingspunt.

Set-PSBreakpoint kan geen onderbrekingspunt instellen op een externe computer. Als u fouten in een script op een externe computer wilt opsporen, kopieert u het script naar de lokale computer en voert u lokaal fouten op.

Met elke Set-PSBreakpoint opdracht maakt u een van de volgende drie typen onderbrekingspunten:

  • Regelonderbrekingspunt: hiermee stelt u onderbrekingspunten in op bepaalde lijn- en kolomcoördinaten.
  • Opdrachtonderbrekingspunt: hiermee stelt u onderbrekingspunten in voor opdrachten en functies.
  • Variabele 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 elke Set-PSBreakpoint opdracht stelt slechts één type onderbrekingspunt in.

Tijdens een onderbrekingspunt stopt PowerShell tijdelijk met het uitvoeren en geeft het controle over het foutopsporingsprogramma. De opdrachtprompt wordt gewijzigd DBG\>en er is een set foutopsporingsprogrammaopdrachten beschikbaar voor gebruik. U kunt echter de parameter Actie 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 het opsporen van fouten 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 script Sample.ps1. 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 instelt op regelnummer, 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 gemaakt voor de Increment functie in de cmdlet Sample.ps1. Het script stopt met het uitvoeren direct voordat elke aanroep naar de opgegeven functie wordt aangeroepen.

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 op een variabele

In dit voorbeeld wordt een onderbrekingspunt ingesteld op de servervariabele in het script Sample.ps1. De parameter Modus wordt gebruikt met een waarde van ReadWrite om de uitvoering te stoppen wanneer de waarde van de variabele wordt gelezen en net voordat de waarde verandert.

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, afhankelijk 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 verbroken 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 te breken. Voer een scriptblok in dat de opdrachten bevat. U kunt deze parameter gebruiken om voorwaardelijke onderbrekingspunten in te stellen of andere taken uit te voeren, zoals testen of logboekregistratie.

Als deze parameter wordt weggelaten of er geen actie is opgegeven, stopt de uitvoering bij het onderbrekingspunt en wordt het foutopsporingsprogramma gestart.

Wanneer de parameter Actie wordt gebruikt, wordt het actiescriptblok uitgevoerd op elk onderbrekingspunt. De uitvoering stopt niet tenzij het scriptblok het trefwoord Einde 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
Accept pipeline input:False
Accept wildcard characters:False
-Column

Hiermee geeft u het kolomnummer 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 Regel om het onderbrekingspunt op te geven. Als de parameter Regel meerdere regels opgeeft, stelt de parameter Kolom een onderbrekingspunt in op de opgegeven kolom op elk van de opgegeven regels. PowerShell stopt met het uitvoeren van de instructie of expressie die het teken op de opgegeven lijn- en kolompositie bevat.

Kolommen worden geteld vanaf de linkerbovenhoek met 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
Accept pipeline input:False
Accept wildcard characters:False
-Command

Hiermee stelt u een onderbrekingspunt voor opdrachten in. Voer cmdletnamen in, zoals Get-Process, of functienamen. Jokertekens zijn toegestaan.

Uitvoering stopt net voordat elke instantie 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
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 op elk van de opgegeven regels begint.

Regels worden geteld vanaf de linkerbovenhoek van het scriptbestand, te beginnen met regelnummer 1 (niet 0). Als u een lege regel opgeeft, stopt de uitvoering vóór de volgende niet-lege regel. Als de regel buiten het bereik valt, wordt het onderbrekingspunt nooit bereikt.

Type:Int32[]
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Mode

Hiermee geeft u de toegangsmodus op waarmee variabele onderbrekingspunten worden geactiveerd. De standaardwaarde is Schrijven.

Deze parameter is alleen geldig wanneer de parameter Variabele 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 - Hiermee stopt u de uitvoering wanneer de variabele wordt gelezen, dat wil gezegd hebben 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
Accept pipeline input:False
Accept wildcard characters:False
-Runspace

{{ Beschrijving van runspace fill }}

Type:Runspace
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Script

Hiermee geeft u een matrix van 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 op 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
Accept pipeline input:False
Accept wildcard characters:False
-Variable

Hiermee geeft u een matrix van variabelen op waarop deze cmdlet onderbrekingspunten instelt. Voer een door komma's gescheiden lijst met variabelen in zonder dollartekens ($).

Gebruik de parameter Modus om de toegangsmodus te bepalen waarmee de onderbrekingspunten worden geactiveerd. De standaardmodus, Schrijven, stopt de uitvoering net voordat een nieuwe waarde naar de variabele wordt geschreven.

Type:String[]
Aliases:V
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

None

U kunt geen invoer doorsluisen naar Set-PSBreakpoint.

Uitvoerwaarden

CommandBreakpoint

LineBreakpoint

VariableBreakpoint

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 in een script op een externe computer wilt opsporen, kopieert u het script naar de lokale computer en voert u 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 op een functie of variabele bij de opdrachtprompt, kunt u het onderbrekingspunt instellen voor of nadat u de functie of variabele hebt gemaakt.