Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara men-debug skrip di komputer lokal dengan menggunakan fitur penelusuran kesalahan visual Windows PowerShell Integrated Scripting Environment (ISE).
Cara mengelola titik henti
Titik henti adalah tempat yang ditunjuk dalam skrip tempat Anda ingin operasi dijeda sehingga Anda dapat memeriksa status variabel saat ini dan lingkungan tempat skrip Anda berjalan. Setelah skrip dijeda oleh titik henti, Anda dapat menjalankan perintah di Panel Konsol untuk memeriksa status skrip Anda. Anda dapat mengeluarkan variabel atau menjalankan perintah lain. Anda bahkan dapat memodifikasi nilai variabel apa pun yang terlihat oleh konteks skrip yang sedang berjalan. Setelah memeriksa apa yang ingin Anda lihat, Anda dapat melanjutkan operasi skrip.
Anda dapat mengatur tiga jenis titik henti di lingkungan penelusuran kesalahan Windows PowerShell:
Titik henti baris. Skrip dijeda ketika baris yang ditunjuk tercapai selama operasi skrip
Titik henti variabel. Skrip dijeda setiap kali nilai variabel yang ditunjuk berubah.
Titik henti perintah. Skrip dijeda setiap kali perintah yang ditunjuk akan dijalankan selama operasi skrip. Ini dapat mencakup parameter untuk memfilter titik henti lebih lanjut hanya ke operasi yang Anda inginkan. Perintah juga dapat menjadi fungsi yang Anda buat.
Dari jumlah tersebut, di lingkungan penelusuran kesalahan ISE Windows PowerShell, hanya titik henti baris yang dapat diatur dengan menggunakan menu atau pintasan keyboard. Dua jenis titik henti lainnya dapat diatur, tetapi diatur dari Panel Konsol dengan menggunakan cmdlet Set-PSBreakpoint . Bagian ini menjelaskan bagaimana Anda dapat melakukan tugas penelusuran kesalahan di WINDOWS PowerShell ISE dengan menggunakan menu jika tersedia, dan melakukan berbagai perintah yang lebih luas dari Panel Konsol dengan menggunakan pembuatan skrip.
Untuk mengatur titik henti
Titik henti dapat diatur dalam skrip hanya setelah disimpan. Klik kanan garis tempat Anda ingin mengatur titik henti baris, lalu klik Alihkan Titik Henti. Atau, klik garis tempat Anda ingin mengatur titik henti baris, dan tekan F9 atau, pada menu Debug , klik Alihkan Titik Henti.
Skrip berikut adalah contoh bagaimana Anda dapat mengatur titik henti variabel dari Panel Konsol dengan menggunakan cmdlet Set-PSBreakpoint .
# This command sets a breakpoint on the Server variable in the Sample.ps1 script.
Set-PSBreakpoint -Script sample.ps1 -Variable Server
Mencantumkan semua titik henti
Menampilkan semua titik henti dalam sesi Windows PowerShell saat ini.
Pada menu Debug , klik Daftar Titik Henti. Skrip berikut adalah contoh bagaimana Anda dapat mencantumkan semua titik henti dari Panel Konsol dengan menggunakan cmdlet Get-PSBreakpoint .
# This command lists all breakpoints in the current session.
Get-PSBreakpoint
Menghapus titik henti
Menghapus titik henti akan menghapusnya.
Jika Anda merasa ingin menggunakannya lagi nanti, pertimbangkan Nonaktifkan Titik Henti sebagai gantinya. Klik kanan garis tempat Anda ingin menghapus titik henti, lalu klik ToggleBreakpoint. Atau, klik garis tempat Anda ingin menghapus titik henti, dan pada menu Debug , klik Alihkan Titik Henti. Skrip berikut adalah contoh cara menghapus titik henti dengan ID tertentu dari Panel Konsol dengan menggunakan cmdlet Remove-PSBreakpoint .
# This command deletes the breakpoint with breakpoint ID 2.
Remove-PSBreakpoint -Id 2
Hapus Semua Titik Henti
Untuk menghapus semua titik henti yang ditentukan dalam sesi saat ini, pada menu Debug , klik Hapus Semua Titik Henti.
Skrip berikut adalah contoh cara menghapus semua titik henti dari Panel Konsol dengan menggunakan cmdlet Remove-PSBreakpoint .
# This command deletes all of the breakpoints in the current session.
Get-PSBreakpoint | Remove-PSBreakpoint
Menonaktifkan Titik Henti
Menonaktifkan titik henti tidak menghapusnya. Ini mematikannya sampai diaktifkan. Untuk menonaktifkan titik henti baris tertentu, klik kanan garis tempat Anda ingin menonaktifkan titik henti, lalu klik Nonaktifkan Titik Henti.
Atau, klik garis tempat Anda ingin menonaktifkan titik henti, dan tekan F9 atau, pada menu Debug , klik Nonaktifkan Titik Henti. Skrip berikut adalah contoh bagaimana Anda dapat menghapus titik henti dengan ID tertentu dari Panel Konsol menggunakan cmdlet Disable-PSBreakpoint .
# This command disables the breakpoint with breakpoint ID 0.
Disable-PSBreakpoint -Id 0
Nonaktifkan Semua Titik Henti
Menonaktifkan titik henti tidak menghapusnya; mematikannya sampai diaktifkan. Untuk menonaktifkan semua titik henti dalam sesi saat ini, pada menu Debug , klik Nonaktifkan semua Titik Henti. Skrip berikut adalah contoh bagaimana Anda dapat menonaktifkan semua titik henti dari Panel Konsol dengan menggunakan cmdlet Disable-PSBreakpoint .
# This command disables all breakpoints in the current session.
# You can abbreviate this command as: "gbp | dbp".
Get-PSBreakpoint | Disable-PSBreakpoint
Mengaktifkan Titik Henti
Untuk mengaktifkan titik henti tertentu, klik kanan garis tempat Anda ingin mengaktifkan titik henti, lalu klik Aktifkan Titik Henti. Atau, klik garis tempat Anda ingin mengaktifkan titik henti, lalu tekan F9 atau, pada menu Debug , klik Aktifkan Titik Henti. Skrip berikut adalah contoh bagaimana Anda dapat mengaktifkan titik henti tertentu dari Panel Konsol dengan menggunakan cmdlet Enable-PSBreakpoint .
# This command enables breakpoints with breakpoint IDs 0, 1, and 5.
Enable-PSBreakpoint -Id 0, 1, 5
Aktifkan Semua Titik Henti
Untuk mengaktifkan semua titik henti yang ditentukan dalam sesi saat ini, pada menu Debug , klik Aktifkan semua Titik Henti. Skrip berikut adalah contoh bagaimana Anda dapat mengaktifkan semua titik henti dari Panel Konsol dengan menggunakan cmdlet Enable-PSBreakpoint .
# This command enables all breakpoints in the current session.
# You can abbreviate the command by using their aliases: "gbp | ebp".
Get-PSBreakpoint | Enable-PSBreakpoint
Cara mengelola sesi penelusuran kesalahan
Sebelum memulai penelusuran kesalahan, Anda harus mengatur satu atau beberapa titik henti. Anda tidak dapat mengatur titik henti kecuali skrip yang ingin Anda debug disimpan. Untuk petunjuk tentang cara mengatur titik henti, lihat Cara mengelola titik henti atau Set-PSBreakpoint. Setelah memulai penelusuran kesalahan, Anda tidak dapat mengedit skrip hingga Anda berhenti men-debug. Skrip yang memiliki satu atau beberapa titik henti diatur secara otomatis disimpan sebelum dijalankan.
Untuk memulai penelusuran kesalahan
Tekan F5 atau, pada toolbar, klik ikon Jalankan Skrip , atau pada menu Debug klik Jalankan/Lanjutkan. Skrip berjalan sampai menemukan titik henti pertama. Ini menjeda operasi di sana dan menyoroti garis di mana ia dijeda.
Untuk melanjutkan debugging
Tekan F5 atau, pada toolbar, klik ikon Jalankan Skrip , atau pada menu Debug , klik Jalankan/Lanjutkan atau, di Panel Konsol, ketik C
lalu tekan ENTER. Ini menyebabkan skrip terus berjalan ke titik henti berikutnya atau ke akhir skrip jika tidak ada titik henti lebih lanjut yang ditemui.
Untuk melihat tumpukan panggilan
Tumpukan panggilan menampilkan lokasi eksekusi saat ini dalam skrip. Jika skrip berjalan dalam fungsi yang dipanggil oleh fungsi yang berbeda, maka itu diwakili dalam tampilan oleh baris tambahan dalam output. Baris paling bawah menampilkan skrip asli dan garis di dalamnya tempat fungsi dipanggil. Baris berikutnya menunjukkan bahwa fungsi dan garis di dalamnya di mana fungsi lain mungkin telah dipanggil. Baris paling atas memperlihatkan konteks baris saat ini tempat titik henti diatur.
Saat dijeda, untuk melihat tumpukan panggilan saat ini, tekan CTRL+SHIFT+D atau, pada menu Debug, klik Tampilkan Tumpukan Panggilan atau, di Panel Konsol, ketik K
lalu tekan ENTER.
Untuk menghentikan penelusuran kesalahan
Tekan SHIFT+F5 atau, pada menu Debug, klik Hentikan Debugger, atau, di Panel Konsol, ketik Q
lalu tekan ENTER.
Cara melangkahi, melangkah ke, dan melangkah keluar saat penelusuran kesalahan
Melangkah adalah proses menjalankan satu pernyataan pada satu waktu. Anda dapat berhenti pada baris kode, dan memeriksa nilai variabel dan status sistem. Tabel berikut ini menjelaskan tugas penelusuran kesalahan umum seperti melangkah, melangkah ke, dan melangkah keluar.
Tugas Penelusuran Kesalahan | Deskripsi | Cara mencapainya di PowerShell ISE |
---|---|---|
Step Into | Menjalankan pernyataan saat ini dan kemudian berhenti pada pernyataan berikutnya. Jika pernyataan saat ini adalah fungsi atau panggilan skrip, maka debugger melangkah ke fungsi atau skrip tersebut, jika tidak, pernyataan berikutnya akan berhenti. | Tekan F11 atau, pada menu Debug , klik Masuk, atau di Panel Konsol, ketik S dan tekan ENTER. |
Step Over | Menjalankan pernyataan saat ini dan kemudian berhenti pada pernyataan berikutnya. Jika pernyataan saat ini adalah fungsi atau panggilan skrip, maka debugger menjalankan seluruh fungsi atau skrip, dan berhenti pada pernyataan berikutnya setelah panggilan fungsi. | Tekan F10 atau, pada menu Debug , klik Langkah Di Atas, atau di Panel Konsol, ketik V dan tekan ENTER. |
Keluar | Langkah-langkah keluar dari fungsi saat ini dan naik satu tingkat jika fungsi disarangkan. Jika di isi utama, skrip dijalankan ke akhir, atau ke titik henti berikutnya. Pernyataan yang dilewati dijalankan, tetapi tidak dilangkahi. | Tekan SHIFT+F11, atau pada menu Debug, klik Keluar, atau di Panel Konsol, ketik O dan tekan ENTER. |
Lanjutkan | Melanjutkan eksekusi ke akhir, atau ke titik henti berikutnya. Fungsi dan pemanggilan yang dilewati dijalankan, tetapi tidak dilangkahi. | Tekan F5 atau, pada menu Debug , klik Jalankan/Lanjutkan, atau di Panel Konsol, ketik C dan tekan ENTER. |
Cara menampilkan nilai variabel saat penelusuran kesalahan
Anda dapat menampilkan nilai variabel saat ini dalam skrip saat Anda menelusuri kode.
Untuk menampilkan nilai variabel standar
Pilih salah satu metode berikut:
Di Panel Skrip, arahkan mouse ke atas variabel untuk menampilkan nilainya sebagai tips alat.
Di Panel Konsol, ketik nama variabel dan tekan ENTER.
Semua panel dalam ISE selalu berada dalam cakupan yang sama. Oleh karena itu, saat Anda men-debug skrip, perintah yang Anda ketik di Panel Konsol berjalan dalam cakupan skrip. Ini memungkinkan Anda menggunakan Panel Konsol untuk menemukan nilai variabel dan fungsi panggilan yang hanya ditentukan dalam skrip.
Untuk menampilkan nilai variabel otomatis
Anda dapat menggunakan metode sebelumnya untuk menampilkan nilai hampir semua variabel saat Anda men-debug skrip. Namun, metode ini tidak berfungsi untuk variabel otomatis berikut.
$_
$Input
$MyInvocation
$PSBoundParameters
$Args
Jika Anda mencoba menampilkan nilai salah satu variabel ini, Anda mendapatkan nilai variabel tersebut untuk dalam alur internal yang digunakan debugger, bukan nilai variabel dalam skrip. Anda dapat mengatasinya untuk beberapa variabel ($_
, , $Input
, $MyInvocation
$PSBoundParameters
, dan $Args
) dengan menggunakan metode berikut:
Dalam skrip, tetapkan nilai variabel otomatis ke variabel baru.
Tampilkan nilai variabel baru, baik dengan mengarahkan mouse ke atas variabel baru di Panel Skrip, atau dengan mengetik variabel baru di Panel Konsol.
Misalnya, untuk menampilkan nilai $MyInvocation
variabel, dalam skrip, tetapkan nilai ke variabel baru, seperti $scriptName
, lalu arahkan mouse ke atas atau ketik $scriptName
variabel untuk menampilkan nilainya.
# In C:\ps-test\MyScript.ps1
$scriptName = $MyInvocation.PSCommandPath
# In the Console Pane:
.\MyScript.ps1
$scriptName
C:\ps-test\MyScript.ps1