Share via


Set-PSBreakpoint

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

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

Cmdlet, Set-PSBreakpoint bir betikte veya geçerli oturumdaki herhangi bir komut çalıştırmasında bir kesme noktası ayarlar. Bir betiği yürütmeden veya komut çalıştırmadan önce veya hata ayıklama sırasında başka bir kesme noktasında durdurulduğunda kesme noktası ayarlamak için kullanabilirsiniz Set-PSBreakpoint .

Set-PSBreakpoint uzak bilgisayarda kesme noktası ayarlayamıyor. 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 komut 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 Set-PSBreakpoint bir komutta 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 olarak değişir DBG\>ve bir hata ayıklayıcı komutları kümesi kullanılabilir duruma gelir. Ancak, kesme noktası koşulları veya günlük 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, 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 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 işlevde Increment 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 Sunucu 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 Mode 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 her komutta "yazma" ile başlayan bir kesme noktası ayarlar; örneğin Write-Host.

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 değişkenin DiskTest değeri 2'den Test.ps1 büyük olduğunda betikteki işlevde yürütmeyi $Disk 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 anahtar sözcüğünü kullanır break . Alternatif (ve varsayılan) Devam'tır.

Örnek 6: İşlevde kesme noktası ayarlama

Bu örnek işlevde CheckLog 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 {($_.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. Eylem 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

Örnek 8: Çalışma alanında kesme noktası ayarlama

Bu örnekte bir iş başlatılır. Runspace bir değişkende depolanır ve Runspace parametresiyle komutuna geçirilirSet-PSBreakPoint.

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

$runspace = Get-Runspace -Id 1

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

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.

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

Daha fazla bilgi için bkz . about_Script_Blocks, about_Break ve about_Continue.

Type:ScriptBlock
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 Line parametresinin değeriyle birlikte kullanılır. Line parametresi birden çok satır belirtiyorsa, Column 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.

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

-Command

Bir komut kesme noktası ayarlar. gibi cmdlet adları Get-Processveya işlev adları 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, PROCESS ve END bölümünde yürütme durdurulur.

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

-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.

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

-Mode

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

Bu parametre yalnızca komutunda Değişken parametresi kullanıldığında geçerlidir. Mod, komutta ayarlanan tüm kesme noktalarına uygulanır. Bu parametrenin kabul edilebilir değerleri ş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.
Type:VariableAccessMode
Accepted values:Read, Write, ReadWrite
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Runspace

Belirtilen çalışma alanında kesme noktalarıyla etkileşim kurabilmeniz için Runspace nesnesinin kimliğini belirtir.

Bu parametre PowerShell 7.2'ye eklendi.

Type:Runspace
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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ış bir listesini girin.

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

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

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

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

  • Tüm platformlar:

    • sbp
  • Set-PSBreakpoint uzak bilgisayarda kesme noktası ayarlayamıyor. 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.