Set-PSBreakpoint

Töréspontot állít be egy vonalon, parancson vagy változón.

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

A Set-PSBreakpoint parancsmag beállít egy töréspontot egy szkriptben vagy az aktuális munkamenetben futtatott bármely parancsban. A szkript végrehajtása vagy parancs futtatása, illetve hibakeresés közben is beállíthat Set-PSBreakpoint töréspontot, ha egy másik töréspontnál áll le.

Set-PSBreakpoint Távoli számítógépen nem lehet töréspontot beállítani. Ha távoli számítógépen szeretne parancsfájlt hibakeresésre telepíteni, másolja a szkriptet a helyi számítógépre, majd helyileg végezze el a hibakeresést.

Minden Set-PSBreakpoint parancs a következő három törésponttípus egyikét hozza létre:

  • Vonaltörési pont – Töréspontokat állít be adott vonal- és oszlopkoordinátákhoz.
  • Parancstörési pont – Töréspontokat állít be parancsokon és függvényeken.
  • Változótörési pont – A változók töréspontjait állítja be.

Egyetlen parancsban több sorra, parancsra vagy változóra Set-PSBreakpoint is beállíthat töréspontot, de mindegyik Set-PSBreakpoint parancs csak egy törésponttípust állít be.

Törésponton a PowerShell ideiglenesen leállítja a végrehajtást, és vezérlést ad a hibakeresőnek. A parancssor a következőre DBG\>módosul, és a hibakereső parancsok egy készlete elérhetővé válik. A Művelet paraméter használatával azonban megadhat egy alternatív választ, például a töréspont feltételeit, vagy további feladatok, például naplózás vagy diagnosztika elvégzésére vonatkozó utasításokat.

A Set-PSBreakpoint parancsmag a PowerShell-szkriptek hibakeresésére tervezett számos parancsmag egyike. A PowerShell-hibakeresővel kapcsolatos további információkért lásd: about_Debuggers.

Példák

1. példa: Töréspont beállítása egy vonalon

Ez a példa egy töréspontot állít be a Sample.ps1 szkript 5. sorába. A szkript futtatásakor a végrehajtás közvetlenül az 5. sor végrehajtása előtt leáll.

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

Amikor sorszám alapján állít be új töréspontot, a Set-PSBreakpoint parancsmag létrehoz egy sortöréspont-objektumot (System.Management.Automation.LineBreakpoint), amely tartalmazza a töréspont azonosítóját és a találatok számát.

2. példa: Töréspont beállítása függvényen

Ez a példa létrehoz egy parancstörési pontot a Increment Sample.ps1 parancsmagban található függvényen. A szkript közvetlenül a megadott függvény hívása előtt leáll.

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

Az eredmény egy parancstöréspont-objektum. A szkript futtatása előtt a HitCount tulajdonság értéke 0.

3. példa: Töréspont beállítása változón

Ez a példa egy töréspontot állít be a Server változón a Sample.ps1 szkriptben. A Mode paramétert ReadWrite értékkel használja a végrehajtás leállításához, amikor a változó értéke beolvasva, és éppen az érték megváltozása előtt.

Set-PSBreakpoint -Script "sample.ps1" -Variable "Server" -Mode ReadWrite

4. példa: Töréspont beállítása minden megadott szöveggel kezdődő parancson

Ez a példa egy töréspontot állít be a Sample.ps1 szkript minden olyan parancsára, amely "írással" kezdődik, például Write-Host.

Set-PSBreakpoint -Script Sample.ps1 -Command "write*"

5. példa: Töréspont beállítása egy változó értékétől függően

Ez a példa csak akkor állítja le a végrehajtást a DiskTestTest.ps1 szkriptben lévő függvénynél, ha a $Disk változó értéke nagyobb, mint 2.

Set-PSBreakpoint -Script "test.ps1" -Command "DiskTest" -Action { if ($Disk -gt 2) { break } }

A Művelet értéke egy szkriptblokk, amely a függvény változójának $Disk értékét ellenőrzi.

A művelet a break kulcsszó használatával állítja le a végrehajtást, ha a feltétel teljesül. A másik lehetőség (és az alapértelmezett) a Folytatás.

6. példa: Töréspont beállítása függvényen

Ez a példa egy töréspontot állít be a CheckLog függvényen. Mivel a parancs nem ad meg szkriptet, a töréspont mindenre be van állítva, amely az aktuális munkamenetben fut. A hibakereső nem a deklarálásakor, hanem a függvény meghívásakor szakad meg.

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'

7. példa: Töréspontok beállítása több sorban

Ez a példa három sortörési pontot állít be a Sample.ps1 szkriptben. Egy töréspontot állít be a 2. oszlopban a szkriptben megadott sorok mindegyikén. A Művelet paraméterben megadott művelet az összes töréspontra vonatkozik.

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

8. példa: Töréspont beállítása egy runspace-ben

Ebben a példában egy feladat indul el. A runspace egy változóban van tárolva, és a Runspace paraméterrel továbbítja a Set-PSBreakPointparancsnak.

Start-Job -ScriptBlock {
    Start-Sleep -Seconds 10
}

$runspace = Get-Runspace -Id 1

Set-PSBreakpoint -Command Start-Sleep -Runspace $runspace

Paraméterek

-Action

Az egyes töréspontokon futtatott parancsokat adja meg törés helyett. Adjon meg egy parancsokat tartalmazó szkriptblokkot. Ezzel a paramétersel feltételes töréspontokat állíthat be, vagy egyéb feladatokat hajthat végre, például tesztelést vagy naplózást.

Ha ez a paraméter nincs megadva, vagy nincs megadva művelet, a végrehajtás leáll a töréspontnál, és elindul a hibakereső.

A Művelet paraméter használatakor a műveletszkriptblokk minden törésponton fut. A végrehajtás csak akkor áll le, ha a szkriptblokk tartalmazza a Break kulcsszót. Ha a szkriptblokkBan a Folytatás kulcsszót használja, a végrehajtás a következő töréspontig folytatódik.

További információ: about_Script_Blocks, about_Break és about_Continue.

Type:ScriptBlock
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Column

A szkriptfájl azon oszlopának oszlopszámát adja meg, amelyen a végrehajtás leáll. Csak egy oszlopszámot adjon meg. Az alapértelmezett oszlop az 1. oszlop.

Az Oszlop érték a Sor paraméter értékével együtt használja a töréspont megadásához. Ha a Sor paraméter több sort ad meg, az Oszlop paraméter töréspontot állít be a megadott oszlophoz a megadott sorokon. A PowerShell leállítja a végrehajtást a megadott sor- és oszlophelyzetben lévő karaktert tartalmazó utasítás vagy kifejezés előtt.

Az oszlopok a bal felső margótól kezdve az 1-es oszlopszámmal kezdődnek (nem 0). Ha olyan oszlopot ad meg, amely nem létezik a szkriptben, a rendszer nem deklarálja a hibát, de a töréspont soha nem lesz végrehajtva.

Type:Int32
Position:2
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Command

Parancstörési pontot állít be. Adja meg a parancsmagok nevét, például Get-Processa függvényneveket. Helyettesítő karakterek használata engedélyezett.

A végrehajtás az egyes parancsok minden példányának végrehajtása előtt leáll. Ha a parancs függvény, a végrehajtás minden alkalommal leáll, amikor a függvényt meghívják, és minden BEGIN, PROCESS és END szakaszban.

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

-Line

Sortörési pontot állít be egy szkriptben. Írjon be egy vagy több sorszámot vesszővel elválasztva. A PowerShell közvetlenül az egyes sorokon kezdődő utasítás végrehajtása előtt leáll.

A sorok a szkriptfájl bal felső margójáról vannak megszámolva az 1. sortól kezdve (nem 0). Ha üres sort ad meg, a végrehajtás a következő nem üres sor előtt leáll. Ha a vonal kívül esik a tartományon, a töréspontot soha nem éri el.

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

-Mode

Meghatározza a változó töréspontokat aktiváló hozzáférési módot. Az alapértelmezett érték az Írás.

Ez a paraméter csak akkor érvényes, ha a változó paramétert használja a parancs. A mód a parancsban beállított összes töréspontra vonatkozik. A paraméter elfogadható értékei a következők:

  • Írás – Azonnal leállítja a végrehajtást, mielőtt egy új értéket ír a változóba.
  • Olvasás – Leállítja a végrehajtást a változó olvasása, vagyis az érték elérésekor, hozzárendelendő, megjelenítendő vagy használt állapotban. Olvasási módban a végrehajtás nem áll le, amikor a változó értéke megváltozik.
  • ReadWrite – Leállítja a végrehajtást a változó olvasása vagy írása közben.
Type:VariableAccessMode
Accepted values:Read, Write, ReadWrite
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Runspace

Egy Runspace-objektum azonosítóját adja meg, hogy a megadott futtatótérben használhassa a töréspontokat.

Ez a paraméter a PowerShell 7.2-ben lett hozzáadva.

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

-Script

Olyan szkriptfájlok tömbjének megadása, amelyekbe ez a parancsmag töréspontot állít be. Adja meg egy vagy több szkriptfájl elérési útját és fájlnevét. Ha a fájlok az aktuális könyvtárban találhatók, kihagyhatja az elérési utat. Helyettesítő karakterek használata engedélyezett.

Alapértelmezés szerint a változó töréspontok és a parancstörési pontok az aktuális munkamenetben futó parancsokon vannak beállítva. Ez a paraméter csak sortörési pont beállításakor szükséges.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Variable

Olyan változók tömbje, amelyeken ez a parancsmag töréspontokat állít be. Adja meg a dollárjelek nélküli változók vesszővel tagolt listáját ($).

A Mode paraméter használatával határozza meg, hogy a hozzáférési mód milyen módon aktiválja a töréspontokat. Az alapértelmezett írási mód leállítja a végrehajtást közvetlenül az új érték változóba írása előtt.

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

Bevitelek

None

Ehhez a parancsmaghoz nem lehet objektumokat csövezni.

Kimenetek

CommandBreakpoint

LineBreakpoint

VariableBreakpoint

Set-PSBreakpoint egy olyan objektumot ad vissza, amely az általa beállított töréspontokat jelöli.

Jegyzetek

A PowerShell a következő aliasokat Set-PSBreakpointtartalmazza:

  • Összes platform:

    • sbp
  • Set-PSBreakpoint Távoli számítógépen nem lehet töréspontot beállítani. Ha távoli számítógépen szeretne parancsfájlt hibakeresésre telepíteni, másolja a szkriptet a helyi számítógépre, majd helyileg végezze el a hibakeresést.

  • Ha több sorra, parancsra vagy változóra állít be töréspontot, Set-PSBreakpoint minden bejegyzéshez létrehoz egy töréspont-objektumot.

  • Amikor a parancssorban beállít egy töréspontot egy függvényre vagy változóra, a függvény vagy változó létrehozása előtt vagy után beállíthatja a töréspontot.