Set-PSBreakpoint

Satır, komut veya değişken üzerinde kesme noktası ayarlar.

Syntax

Line (Varsayılan)

Set-PSBreakpoint
    [[-Column] <Int32>]
    [-Line] <Int32[]>
    [-Script] <String[]>
    [-Action <ScriptBlock>]
    [<CommonParameters>]

Command

Set-PSBreakpoint
    [[-Script] <String[]>]
    -Command <String[]>
    [-Action <ScriptBlock>]
    [<CommonParameters>]

Variable

Set-PSBreakpoint
    [[-Script] <String[]>]
    -Variable <String[]>
    [-Action <ScriptBlock>]
    [-Mode <VariableAccessMode>]
    [<CommonParameters>]

Description

Set-PSBreakpoint cmdlet'i bir betikte veya geçerli oturumdaki herhangi bir komut çalıştırmasında bir kesme noktası ayarlar. Set-PSBreakpoint kullanarak bir betiği yürütmeden veya komut çalıştırmadan önce ya da hata ayıklama sırasında başka bir kesme noktasında durdurulduğunda kesme noktası ayarlayabilirsiniz.

Set-PSBreakpoint uzak bilgisayarda kesme noktası ayarlayamazsınız. Uzak bilgisayardaki bir betiğin hatalarını ayıklamak için, betiği yerel bilgisayara kopyalayın ve ardından yerel olarak hata ayıklayın.

Her Set-PSBreakpoint komutu aşağıdaki üç kesme noktasından birini oluşturur:

  • Satır kesme noktası - Kesme noktalarını belirli satır ve sütun koordinatlarında ayarlar.
  • Komut kesme noktası - Komutlarda ve işlevlerde kesme noktalarını ayarlar.
  • Değişken kesme noktası - Değişkenlerdeki kesme noktalarını ayarlar.

Tek bir Set-PSBreakpoint komutunda birden çok satır, komut veya değişkende kesme noktası ayarlayabilirsiniz, ancak her Set-PSBreakpoint komut yalnızca bir kesme noktası türü ayarlar.

Kesme noktasında PowerShell yürütmeyi geçici olarak durdurur ve hata ayıklayıcıya denetim verir. Komut istemi DBG\>olarak değişir ve bir dizi hata ayıklayıcı komutu kullanılabilir duruma gelir. Ancak, kesme noktası koşulları veya günlüğe kaydetme veya tanılama gibi ek görevleri gerçekleştirme yönergeleri gibi alternatif bir yanıt belirtmek için Eylem parametresini kullanabilirsiniz.

Set-PSBreakpoint cmdlet'i, PowerShell betiklerinde hata ayıklamak için tasarlanmış çeşitli cmdlet'lerden biridir. PowerShell hata ayıklayıcısı hakkında daha fazla bilgi için bkz. about_Debuggers.

Örnekler

Örnek 1: Satırda kesme noktası ayarlama

Bu örnek, Sample.ps1 betiğinde 5. satırda bir kesme noktası ayarlar. Betik çalıştırıldığında, 5. satır yürütülmeden hemen önce yürütme durdurulur.

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

Satır numarasına göre yeni bir kesme noktası ayarladığınızda, Set-PSBreakpoint cmdlet'i kesme noktası kimliğini ve isabet sayısını içeren bir satır kesme noktası nesnesi (System.Management.Automation.LineBreakpoint) oluşturur.

Örnek 2: İşlevde kesme noktası ayarlama

Bu örnek, Sample.ps1 cmdlet'indeki Increment işlevinde bir komut kesme noktası oluşturur. Betik, belirtilen işleve yapılan her çağrıdan hemen önce yürütülürken durur.

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

Sonuç bir komut kesme noktası nesnesidir. Betik çalıştırılmadan önce, HitCount özelliğinin değeri 0'dır.

Örnek 3: Değişkende kesme noktası ayarlama

Bu örnek, Sample.ps1 betiğindeki Server değişkeninde bir kesme noktası ayarlar. Değişkenin değeri okunduğunda ve değer değişmeden hemen önce yürütmeyi durdurmak için ReadWrite değeriyle Modu parametresini kullanır.

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

Örnek 4: Belirtilen metinle başlayan her komutta bir kesme noktası ayarlama

Bu örnek, Sample.ps1 betiğindeki "yazma" ile başlayan her komutta Write-Hostgibi bir kesme noktası ayarlar.

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

Örnek 5: Bir değişkenin değerine bağlı olarak kesme noktası ayarlama

Bu örnek, yalnızca DiskTest değişkeninin değeri 2'den büyük olduğunda Test.ps1 betiğindeki $Disk işlevinde yürütmeyi durdurur.

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

Eylem değeri, işlevdeki değişkenin değerini $Disk test eden bir betik bloğudur.

Eylem, koşul karşılanırsa yürütmeyi durdurmak için break anahtar sözcüğünü kullanır. Alternatif (ve varsayılan),Devam .

Örnek 6: İşlevde kesme noktası ayarlama

Bu örnek, CheckLog işlevinde bir kesme noktası ayarlar. Komut bir betik belirtmediğinden, kesme noktası geçerli oturumda çalışan her şeyde ayarlanır. Hata ayıklayıcı, işlev bildirildiğinde değil çağrıldığında kesilir.

PS> Set-PSBreakpoint -Command "checklog"
Id       : 0
Command  : checklog
Enabled  : True
HitCount : 0
Action   :

function CheckLog {
>> Get-EventLog -Log Application |
>> Where-Object {($_.Source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG:  Function breakpoint on 'prompt:Checklog'

Örnek 7: Birden çok satırda kesme noktaları ayarlama

Bu örnek, Sample.ps1 betiğinde üç satır kesme noktası ayarlar. Betikte belirtilen satırların her birinde 2. sütunda bir kesme noktası ayarlar. Eylemi parametresinde belirtilen eylem tüm kesme noktaları için geçerlidir.

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

Parametreler

-Action

Kesme yerine her kesme noktasında çalışan komutları belirtir. Komutları içeren bir betik bloğu girin. Koşullu kesme noktaları ayarlamak veya test veya günlük kaydı gibi diğer görevleri gerçekleştirmek için bu parametreyi kullanabilirsiniz.

Bu parametre atlanırsa veya hiçbir eylem belirtilmezse, yürütme kesme noktasında durur ve hata ayıklayıcı başlatılır.

Action parametresi kullanıldığında, Eylem betik bloğu her kesme noktasında çalışır. Betik bloğu anahtar sözcüğünü break içermediği sürece yürütme durdurulmuyor. betik bloğunda anahtar sözcüğünü continue kullanırsanız, yürütme bir sonraki kesme noktasına kadar devam eder.

Daha fazla bilgi için bkz. about_Script_Blocks, about_Breakve about_Continue.

Parametre özellikleri

Tür:ScriptBlock
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Column

Betik dosyasında yürütmenin durduğu sütunun sütun numarasını belirtir. Yalnızca bir sütun numarası girin. Varsayılan sütun 1'dir.

Sütun değeri, kesme noktasını belirtmek için Satır parametresinin değeriyle birlikte kullanılır. Satırı parametresi birden çok satır belirtiyorsa, Sütun parametresi belirtilen satırların her birinde belirtilen sütunda bir kesme noktası ayarlar. PowerShell, belirtilen satır ve sütun konumundaki karakteri içeren deyim veya ifadeden önce yürütmeyi durdurur.

Sütunlar sol üst kenar boşluğundan 1 sütun numarasıyla (0 değil) başlayarak sayılır. Betikte bulunmayan bir sütun belirtirseniz, hata bildirilmez, ancak kesme noktası hiçbir zaman yürütülemez.

Parametre özellikleri

Tür:Int32
Default value:1
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

Line
Position:2
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Command

Bir komut kesme noktası ayarlar. Get-Processgibi cmdlet adlarını veya işlev adlarını girin. Joker karakterlere izin verilir.

Yürütme, her komutun her örneği yürütülmeden hemen önce durur. Komut bir işlevse, işlev her çağrıldığında ve her begin, processve end bloğunda yürütme durdurulur.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False
Diğer adlar:C

Parametre kümeleri

Command
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Line

Betikte bir satır kesme noktası ayarlar. Virgülle ayırarak bir veya daha fazla satır numarası girin. PowerShell, belirtilen satırların her birinde başlayan deyimi yürütmeden hemen önce durur.

Satırlar, betik dosyasının sol üst kenar boşluğundan 1 numaralı satırdan (0 değil) başlayarak sayılır. Boş bir satır belirtirseniz, yürütme bir sonraki boş olmayan satırdan önce durur. Satır aralığın dışındaysa kesme noktasına hiçbir zaman isabet olmaz.

Parametre özellikleri

Tür:

Int32[]

Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

Line
Position:1
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Mode

Değişken kesme noktalarını tetikleyen erişim modunu belirtir. Varsayılan değer Yazma' dir.

Bu parametre yalnızca komutta Değişken parametresi kullanıldığında geçerlidir. Mod, komutta ayarlanan tüm kesme noktalarına uygulanır. Bu parametre için kabul edilebilir değerler şunlardır:

  • Yazma - Değişkene yeni bir değer yazıldıktan hemen önce yürütmeyi durdurur.
  • Okuma - Değişken okunduğunda, yani değerine erişildiğinde atanmak, görüntülenmesi veya kullanılması için yürütmeyi durdurur. Okuma modunda, değişkenin değeri değiştiğinde yürütme durmaz.
  • ReadWrite - Değişken okunduğunda veya yazıldığında yürütmeyi durdurur.

Parametre özellikleri

Tür:VariableAccessMode
Default value:None
Kabul edilen değerler:Read, Write, ReadWrite
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

Variable
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Script

Bu cmdlet'in kesme noktası ayarlayan bir betik dosyası dizisini belirtir. Bir veya daha fazla betik dosyasının yollarını ve dosya adlarını girin. Dosyalar geçerli dizindeyse yolu atlayabilirsiniz. Joker karakterlere izin verilir.

Varsayılan olarak, değişken kesme noktaları ve komut kesme noktaları geçerli oturumda çalışan herhangi bir komutta ayarlanır. Bu parametre yalnızca bir satır kesme noktası ayarlanırken gereklidir.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

Line
Position:0
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
Command
Position:0
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
Variable
Position:0
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Variable

Bu cmdlet'in kesme noktalarını ayarlayan bir değişken dizisini belirtir. Dolar işareti olmayan değişkenlerin virgülle ayrılmış listesini girin ($).

Kesme noktalarını tetikleyen erişim modunu belirlemek için Modu parametresini kullanın. Varsayılan mod olan Write, değişkene yeni bir değer yazılmadan hemen önce yürütmeyi durdurur.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:V

Parametre kümeleri

Variable
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

None

Nesneleri bu cmdlet'e yöneltemezsiniz.

Çıkışlar

CommandBreakpoint

LineBreakpoint

VariableBreakpoint

Set-PSBreakpoint, ayarlamış olduğu her kesme noktasını temsil eden bir nesne döndürür.

Notlar

Windows PowerShell, Set-PSBreakpointiçin aşağıdaki diğer adları içerir:

  • sbp

  • Set-PSBreakpoint uzak bilgisayarda kesme noktası ayarlayamazsınız. Uzak bilgisayardaki bir betiğin hatalarını ayıklamak için, betiği yerel bilgisayara kopyalayın ve ardından yerel olarak hata ayıklayın.

  • Birden fazla satır, komut veya değişkende kesme noktası ayarladığınızda, Set-PSBreakpoint her giriş için bir kesme noktası nesnesi oluşturur.

  • Komut isteminde bir işlev veya değişken üzerinde kesme noktası ayarlarken, işlevi veya değişkeni oluşturmadan önce veya sonra kesme noktasını ayarlayabilirsiniz.