Set-PSBreakpoint
Mengatur titik henti pada baris, perintah, atau variabel.
Sintaks
Line (Default)
Set-PSBreakpoint
[[-Column] <Int32>]
[-Line] <Int32[]>
[-Script] <String[]>
[-Action <ScriptBlock>]
[-Runspace <Runspace>]
[<CommonParameters>]
Command
Set-PSBreakpoint
[[-Script] <String[]>]
-Command <String[]>
[-Action <ScriptBlock>]
[-Runspace <Runspace>]
[<CommonParameters>]
Variable
Set-PSBreakpoint
[[-Script] <String[]>]
-Variable <String[]>
[-Action <ScriptBlock>]
[-Mode <VariableAccessMode>]
[-Runspace <Runspace>]
[<CommonParameters>]
Deskripsi
cmdlet Set-PSBreakpoint mengatur titik henti dalam skrip atau dalam perintah apa pun yang dijalankan dalam sesi saat ini. Anda dapat menggunakan Set-PSBreakpoint untuk mengatur titik henti sebelum menjalankan skrip atau menjalankan perintah, atau selama penelusuran kesalahan, saat dihentikan di titik henti lain.
Set-PSBreakpoint tidak dapat menyetel titik henti pada komputer jarak jauh. Untuk men-debug skrip di komputer jarak jauh, salin skrip ke komputer lokal lalu debug secara lokal.
Setiap perintah Set-PSBreakpoint membuat salah satu dari tiga jenis titik henti berikut:
- Titik henti baris - Mengatur titik henti pada koordinat baris dan kolom tertentu.
- Titik henti perintah - Mengatur titik henti pada perintah dan fungsi.
- Titik henti variabel - Mengatur titik henti pada variabel.
Anda dapat mengatur titik henti pada beberapa baris, perintah, atau variabel dalam satu perintah Set-PSBreakpoint, tetapi setiap perintah Set-PSBreakpoint hanya mengatur satu jenis titik henti.
Pada titik henti, PowerShell untuk sementara berhenti mengeksekusi dan memberikan kontrol ke debugger. Perintah berubah menjadi DBG\>, dan sekumpulan perintah debugger tersedia untuk digunakan. Namun, Anda dapat menggunakan parameter Tindakan
Cmdlet Set-PSBreakpoint adalah salah satu dari beberapa cmdlet yang dirancang untuk men-debug skrip PowerShell.
Untuk informasi selengkapnya tentang debugger PowerShell, lihat about_Debuggers.
Contoh
Contoh 1: Mengatur titik henti pada baris
Contoh ini mengatur titik henti pada baris 5 dalam skrip Sample.ps1. Ketika skrip berjalan, eksekusi berhenti segera sebelum baris 5 akan dijalankan.
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
Saat Anda mengatur titik henti baru menurut nomor baris, cmdlet Set-PSBreakpoint menghasilkan objek titik henti baris (System.Management.Automation.LineBreakpoint) yang menyertakan ID titik henti dan hit count.
Contoh 2: Mengatur titik henti pada fungsi
Contoh ini membuat titik henti perintah pada fungsi Increment di cmdlet Sample.ps1. Skrip berhenti dijalankan segera sebelum setiap panggilan ke fungsi yang ditentukan.
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
Hasilnya adalah objek titik henti perintah. Sebelum skrip berjalan, nilai properti HitCount adalah 0.
Contoh 3: Mengatur titik henti pada variabel
Contoh ini mengatur titik henti pada variabel Server
Set-PSBreakpoint -Script "sample.ps1" -Variable "Server" -Mode ReadWrite
Contoh 4: Atur titik henti pada setiap perintah yang dimulai dengan teks tertentu
Contoh ini mengatur titik henti pada setiap perintah dalam skrip Sample.ps1 yang dimulai dengan "tulis", seperti Write-Host.
Set-PSBreakpoint -Script Sample.ps1 -Command "write*"
Contoh 5: Mengatur titik henti tergantung pada nilai variabel
Contoh ini menghentikan eksekusi pada fungsi DiskTest dalam skrip Test.ps1 hanya ketika nilai variabel $Disk lebih besar dari 2.
Set-PSBreakpoint -Script "test.ps1" -Command "DiskTest" -Action { if ($Disk -gt 2) { break } }
Nilai Tindakan adalah blok skrip yang menguji nilai $Disk variabel dalam fungsi.
Tindakan menggunakan kata kunci break untuk menghentikan eksekusi jika kondisi terpenuhi. Alternatif (dan defaultnya) adalah Lanjutkan.
Contoh 6: Mengatur titik henti pada fungsi
Contoh ini mengatur titik henti pada fungsi CheckLog. Karena perintah tidak menentukan skrip, titik henti diatur pada apa pun yang berjalan dalam sesi saat ini. Debugger berhenti ketika fungsi dipanggil, bukan ketika dideklarasikan.
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'
Contoh 7: Mengatur titik henti pada beberapa baris
Contoh ini menetapkan tiga titik henti baris dalam skrip Sample.ps1. Ini mengatur satu titik henti pada kolom 2 pada setiap baris yang ditentukan dalam skrip. Tindakan yang ditentukan dalam parameter Tindakan
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
Contoh 8: Mengatur titik henti di runspace
Dalam contoh ini, pekerjaan dimulai. Runspace yang disimpan dalam variabel diteruskan ke perintah Set-PSBreakpoint dengan parameter Runspace .
Start-Job -ScriptBlock {
Start-Sleep -Seconds 10
}
$runspace = Get-Runspace -Id 1
Set-PSBreakpoint -Command Start-Sleep -Runspace $runspace
Parameter
-Action
Menentukan perintah yang berjalan di setiap titik henti alih-alih melanggar. Masukkan blok skrip yang berisi perintah. Anda dapat menggunakan parameter ini untuk mengatur titik henti kondisional atau untuk melakukan tugas lain, seperti pengujian atau pengelogan.
Jika parameter ini dihilangkan, atau tidak ada tindakan yang ditentukan, eksekusi berhenti di titik henti, dan debugger dimulai.
Saat parameter Tindakan digunakan, blokir skrip Tindakan berjalan di setiap titik henti. Eksekusi tidak berhenti kecuali blokir skrip menyertakan break kata kunci. Jika Anda menggunakan continue kata kunci dalam blok skrip, eksekusi akan dilanjutkan hingga titik henti berikutnya.
Untuk informasi selengkapnya, lihat about_Script_Blocks, about_Break, dan about_Continue.
Properti parameter
| Jenis: | ScriptBlock |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Column
Menentukan nomor kolom kolom dalam file skrip tempat eksekusi berhenti. Masukkan hanya satu nomor kolom. Defaultnya adalah kolom 1.
Nilai Kolom digunakan dengan nilai parameter Baris
Kolom dihitung dari margin kiri atas yang dimulai dengan nomor kolom 1 (bukan 0). Jika Anda menentukan kolom yang tidak ada dalam skrip, kesalahan tidak dideklarasikan, tetapi titik henti tidak pernah dijalankan.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | 1 |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
Line
| Position: | 2 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Command
Mengatur titik henti perintah. Masukkan nama cmdlet, seperti Get-Process, atau nama fungsi. Kartu liar diizinkan.
Eksekusi berhenti tepat sebelum setiap instans setiap perintah dijalankan. Jika perintah adalah fungsi, eksekusi berhenti setiap kali fungsi dipanggil dan pada setiap begin, process, dan blok end.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
| Alias: | C |
Kumpulan parameter
Command
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Line
Mengatur titik henti baris dalam skrip. Masukkan satu atau beberapa nomor baris, dipisahkan dengan koma. PowerShell berhenti segera sebelum menjalankan pernyataan yang dimulai pada setiap baris yang ditentukan.
Baris dihitung dari margin kiri atas file skrip yang dimulai dengan baris nomor 1 (bukan 0). Jika Anda menentukan baris kosong, eksekusi akan berhenti sebelum baris tidak kosong berikutnya. Jika garis berada di luar jangkauan, titik henti tidak pernah tertembak.
Properti parameter
| Jenis: | Int32[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
Line
| Position: | 1 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Mode
Menentukan mode akses yang memicu titik henti variabel. Defaultnya adalah Write.
Parameter ini hanya valid ketika parameter Variabel
- Write - Menghentikan eksekusi segera sebelum nilai baru ditulis ke variabel .
- Read - Menghentikan eksekusi saat variabel dibaca, yaitu, ketika nilainya diakses, baik untuk ditetapkan, ditampilkan, atau digunakan. Dalam mode baca, eksekusi tidak berhenti ketika nilai variabel berubah.
- ReadWrite - Menghentikan eksekusi saat variabel dibaca atau ditulis.
Properti parameter
| Jenis: | VariableAccessMode |
| Nilai default: | None |
| Nilai yang diterima: | Read, Write, ReadWrite |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
Variable
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Runspace
Menentukan Id objek Runspace sehingga Anda dapat berinteraksi dengan titik henti di Runspace yang ditentukan.
Parameter ini ditambahkan di PowerShell 7.2.
Properti parameter
| Jenis: | Runspace |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Script
Menentukan array file skrip tempat cmdlet ini menetapkan titik henti. Masukkan jalur dan nama file dari satu atau beberapa file skrip. Jika file berada di direktori saat ini, Anda dapat menghilangkan jalur. Kartu liar diizinkan.
Secara default, titik henti variabel dan titik henti perintah diatur pada perintah apa pun yang berjalan dalam sesi saat ini. Parameter ini hanya diperlukan saat mengatur titik henti baris.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
Line
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
Command
| Position: | 0 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
Variable
| Position: | 0 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Variable
Menentukan array variabel tempat cmdlet ini mengatur titik henti. Masukkan daftar variabel yang dipisahkan koma tanpa tanda dolar ($).
Gunakan parameter Mode
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | V |
Kumpulan parameter
Variable
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
CommandBreakpoint
LineBreakpoint
VariableBreakpoint
Set-PSBreakpoint mengembalikan objek yang mewakili setiap titik henti yang ditetapkannya.
Catatan
PowerShell menyertakan alias berikut untuk Set-PSBreakpoint:
Semua platform:
sbp
Set-PSBreakpointtidak dapat menyetel titik henti pada komputer jarak jauh. Untuk men-debug skrip di komputer jarak jauh, salin skrip ke komputer lokal lalu debug secara lokal.Saat Anda mengatur titik henti pada lebih dari satu baris, perintah, atau variabel,
Set-PSBreakpointmenghasilkan objek titik henti untuk setiap entri.Saat mengatur titik henti pada fungsi atau variabel pada prompt perintah, Anda dapat mengatur titik henti sebelum atau sesudah Anda membuat fungsi atau variabel.