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.
Tutorial ini memperkenalkan alat debugging yang tersedia di Visual Studio.
Penting
Semua pintasan keyboard didasarkan pada default dari Visual Studio. Pintasan keyboard Anda mungkin berbeda-beda, untuk informasi selengkapnya, lihat pintasan Keyboard di Visual Studio.
Tutorial ini memperkenalkan alat debug yang tersedia di Visual Studio Code yang digunakan dalam menangani aplikasi .NET.
Tutorial ini memperkenalkan alat debug yang tersedia di GitHub Codespaces yang dapat digunakan saat bekerja dengan aplikasi .NET.
Prasyarat
Tutorial ini berfungsi dengan aplikasi konsol yang Anda buat di Buat aplikasi konsol .NET.
Menggunakan konfigurasi Debug build
Debug dan Release adalah konfigurasi build bawaan Visual Studio. Anda menggunakan konfigurasi build Debug untuk penelusuran kesalahan dan konfigurasi Rilis untuk distribusi rilis akhir.
Dalam konfigurasi Debug, program dikompilasi dengan informasi debug simbolis penuh dan tidak ada pengoptimalan. Pengoptimalan mempersulit penelusuran kesalahan, karena hubungan antara kode sumber dan instruksi yang dihasilkan lebih kompleks. Konfigurasi rilis program tidak memiliki informasi debug simbolis dan sepenuhnya dioptimalkan.
Secara default, Visual Studio menggunakan konfigurasi build Debug, sehingga Anda tidak perlu mengubahnya sebelum debugging.
Mulai Visual Studio.
Buka proyek yang Anda buat di Buat aplikasi konsol .NET.
Konfigurasi build saat ini ditampilkan pada toolbar. Gambar toolbar berikut menunjukkan bahwa Visual Studio dikonfigurasi untuk mengkompilasi versi Debug aplikasi:
Mengatur titik henti
Titik henti untuk sementara mengganggu eksekusi aplikasi sebelum baris dengan titik henti dijalankan.
Atur titik henti pada baris yang menampilkan nama, tanggal, dan waktu, dengan mengklik di margin kiri jendela kode pada baris tersebut. Margin kiri berada di sebelah kiri nomor baris. Cara lain untuk mengatur titik henti adalah dengan menempatkan kursor di baris kode lalu menekan F9 atau memilih Debug>Ganti Titik Henti dari bilah menu.
Seperti yang ditunjukkan gambar berikut, Visual Studio menunjukkan garis tempat titik henti diatur dengan menyorotinya dan menampilkan titik merah di margin kiri.
Tekan
F5 untuk menjalankan program dalam mode Debug. Cara lain untuk memulai debugging adalah dengan memilih Debug>Mulai Debugging dari menu. Masukkan string di jendela konsol saat program meminta nama, lalu tekan Enter.
Eksekusi program berhenti ketika mencapai titik henti dan sebelum metode
Console.WriteLinedijalankan. Jendela Lokalmenampilkan nilai variabel yang ditentukan dalam metode yang sedang dijalankan.
Mulai Visual Studio Code.
Buka folder proyek yang Anda buat di Buat aplikasi konsol .NET.
Buka file Program.cs.
Atur titik henti pada baris yang menampilkan nama, tanggal, dan waktu, dengan mengklik di margin kiri jendela kode. Margin kiri berada di sebelah kiri nomor baris. Cara lain untuk mengatur titik henti adalah dengan menekan F9 atau memilih Jalankan>Ganti Titik Henti dari menu saat baris kode dipilih.
Visual Studio Code menandai garis yang diatur sebagai titik henti dengan menampilkan titik merah di margin kiri.
Buka GitHub Codespace yang Anda buat di Buat aplikasi konsol .NET.
Buka file HelloWorld.cs .
Atur titik henti pada baris yang menampilkan nama, tanggal, dan waktu, dengan mengklik di margin kiri jendela kode. Margin kiri berada di sebelah kiri nomor baris. Anda juga dapat mengatur titik henti adalah dengan menekan F9 saat baris kode dipilih.
Mulai debug
Eksekusi program berhenti ketika mencapai titik henti, seperti yang dijelaskan di bagian sebelumnya. Jendela Lokal
Debug dan Release adalah konfigurasi build bawaan .NET. Anda menggunakan konfigurasi build Debug untuk penelusuran kesalahan dan konfigurasi Rilis untuk distribusi rilis akhir.
Secara bawaan, pengaturan peluncuran Visual Studio Code menggunakan konfigurasi build Debug, jadi Anda tidak perlu mengubahnya sebelum melakukan debugging.
Buka tampilan Debug dengan memilih ikon Debugging di menu sisi kiri.
Pilih Jalankan dan Debug. Jika diminta, pilih C# lalu pilih C#: Luncurkan proyek startup. Cara lain untuk memulai program dalam mode debugging adalah dengan menekan F5 atau memilih Jalankan>Mulai Debugging dari menu.
Jika diminta untuk Pilih Konfigurasi Peluncuran, pilih C#: Debug File Aktif.
Pilih tab Konsol Debug untuk melihat perintah "Apa nama Anda?" yang ditampilkan program sebelum menunggu respons.
Masukkan string di jendela Konsol Debug sebagai respons terhadap permintaan nama, lalu tekan Enter.
Eksekusi program berhenti ketika mencapai titik henti dan sebelum
Console.WriteLinemetode berjalan. Bagian Lokal dari jendela Variabel menampilkan nilai variabel yang ditentukan dalam metode yang sedang berjalan.
Secara default, GitHub Codespaces menggunakan konfigurasi build Debug, sehingga Anda tidak perlu mengubahnya sebelum melakukan debugging.
Buka tampilan Debug dengan memilih ikon Debugging di menu sisi kiri.
Pilih Jalankan dan Debug. Jika diminta, pilih C# sebagai debugger lalu pilih C#: Debug File Aktif sebagai Konfigurasi Peluncuran.
Pilih tab Konsol Debug untuk melihat perintah "Apa nama Anda?" yang ditampilkan program sebelum menunggu respons.
Masukkan string di jendela Konsol Debug sebagai respons terhadap permintaan nama, lalu tekan Enter.
Eksekusi program berhenti ketika mencapai titik henti dan sebelum
Console.WriteLinemetode berjalan. Bagian Lokal dari jendela Variabel menampilkan nilai variabel yang ditentukan dalam metode yang sedang berjalan.
Menggunakan jendela Langsung
Jendela Segera memungkinkan Anda berinteraksi dengan aplikasi yang sedang Anda debug. Anda dapat mengubah nilai variabel secara interaktif untuk melihat pengaruhnya terhadap program Anda.
Jika jendela Immediate tidak terlihat, tampilkan dengan memilih Debug>Windows>Immediate.
Masukkan
name = "Gracie"di jendela langsung dan tekan tombol Enter .Masukkan
currentDate = DateTime.Parse("2026-02-05T20:25:00Z").ToUniversalTime()di jendela langsung dan tekan tombol Enter .Jendela langsung menampilkan nilai variabel string dan properti nilai DateTime. Selain itu, nilai variabel diperbarui di jendela Lokal.
Tekan F5 untuk melanjutkan eksekusi program. Cara lain untuk melanjutkan adalah dengan memilih Debug>Lanjutkan dari menu.
Nilai yang ditampilkan di jendela konsol sesuai dengan perubahan yang Anda buat di jendela langsung.
Tekan sembarang tombol untuk keluar dari aplikasi dan hentikan debugging.
Menggunakan Konsol Debug
Jendela Konsol Debug memungkinkan Anda berinteraksi dengan aplikasi yang Sedang Anda debug. Anda dapat mengubah nilai variabel untuk melihat pengaruhnya terhadap program Anda.
Pilih tab Konsol Debug .
Masukkan
name = "Gracie"pada perintah di bagian bawah jendela Konsol Debug dan tekan Enter.
Masukkan
currentDate = DateTime.Parse("2026-01-28T20:54:00Z").ToUniversalTime()di bagian bawah jendela Konsol Debug dan tekan Enter.Jendela Variabel menampilkan nilai baru variabel
namedancurrentDate.Lanjutkan eksekusi program dengan memilih tombol Lanjutkan di bilah alat. Cara lain untuk melanjutkan adalah dengan menekan F5.
Nilai yang ditampilkan di jendela konsol sesuai dengan perubahan yang Anda buat di Konsol Debug.
Tekan Enter untuk keluar dari aplikasi dan hentikan debug.
Mengatur titik henti bersyarat
Program menampilkan untai (karakter) yang dimasukkan pengguna. Apa yang terjadi jika pengguna tidak memasukkan apa pun? Anda dapat mengujinya dengan fitur debugging berguna yang disebut titik henti kondisional.
Klik kanan pada titik merah yang mewakili titik henti. Di menu konteks, pilih Kondisi untuk membuka dialog Pengaturan Titik Henti. Pilih kotak untuk Kondisi jika belum dipilih.
Editor
Untuk Ekspresi Kondisional, masukkan kode berikut pada kolom teks.
string.IsNullOrEmpty(name)String.IsNullOrEmpty(name)Setiap kali titik henti tercapai, debugger memanggil metode
String.IsNullOrWhiteSpace(name), dan berhenti pada baris ini hanya jika panggilan metode menghasilkantrue.Alih-alih ekspresi kondisional, Anda dapat menentukan hit count , yang mengganggu eksekusi program sebelum pernyataan dijalankan jumlah tertentu kali. Opsi lain adalah menentukan kondisi filter , yang mengganggu eksekusi program berdasarkan atribut seperti pengidentifikasi utas, nama proses, atau nama utas.
Pilih Tutup untuk menutup dialog.
Mulai program dengan debugging dengan menekan F5.
Di jendela konsol, tekan tombol Enter saat diminta untuk memasukkan nama Anda.
Karena kondisi yang Anda tentukan (
namenullatau String.Empty) telah terpenuhi, eksekusi program berhenti ketika mencapai titik henti dan sebelum metodeConsole.WriteLinedijalankan.Pilih jendela Locals, yang menunjukkan nilai variabel yang bersifat lokal untuk metode yang sedang dijalankan. Dalam hal ini,
Mainadalah metode yang sedang dijalankan. Amati bahwa nilai variabelname"", atau String.Empty.Konfirmasikan bahwa nilai tersebut adalah string kosong dengan memasukkan pernyataan berikut di jendela Segera dan menekan Enter. Hasilnya adalah
true.? name == String.Empty? String.IsNullOrEmpty(name)Tanda tanya mengarahkan jendela langsung untuk mengevaluasi ekspresi.
Tekan F5 untuk melanjutkan eksekusi program.
Tekan tombol apa pun untuk menutup jendela konsol dan menghentikan debugging.
Hapus titik henti dengan mengklik titik di margin kiri jendela kode. Cara lain untuk menghapus titik henti adalah dengan menekan F9 atau memilih Debug > Ganti Titik Henti saat baris kode dipilih.
Klik kanan (Ctrl-klik pada macOS) pada titik merah yang mewakili titik henti. Pada menu konteks, pilih Edit Titik Henti untuk membuka dialog dan memasukkan ekspresi kondisional.
Pilih
Expressiondi menu drop-down, masukkan ekspresi bersyarah berikut, dan tekan Enter.String.IsNullOrEmpty(name)
Setiap kali titik henti tercapai, debugger memanggil metode
String.IsNullOrEmpty(name), dan berhenti pada baris ini hanya jika panggilan metode menghasilkantrue.Alih-alih ekspresi kondisional, Anda dapat menentukan hit count, yang mengganggu eksekusi program sebelum pernyataan dijalankan beberapa kali. Opsi lain adalah menentukan kondisi filter , yang mengganggu eksekusi program berdasarkan atribut seperti pengidentifikasi utas, nama proses, atau nama utas.
Mulai program dengan debugging dengan menekan F5.
Di tab Konsol Debug , tekan Enter saat diminta untuk memasukkan nama Anda.
Karena kondisi yang Anda tentukan (
nameadalahnullatau String.Empty) telah terpenuhi, eksekusi program berhenti ketika mencapai titik henti dan sebelumConsole.WriteLinemetode berjalan.Jendela Variabel menunjukkan bahwa nilai
namevariabel adalah"", atau String.Empty.Konfirmasikan nilainya adalah string kosong dengan memasukkan pernyataan berikut di prompt Konsol Debug dan menekan Enter. Hasilnya adalah
true.name == String.EmptyPilih tombol Lanjutkan pada toolbar untuk melanjutkan eksekusi program.
Tekan Enter untuk keluar dari program dan menghentikan debugging.
Hapus titik henti dengan mengklik titik di margin kiri jendela kode. Cara lain untuk menghapus titik henti adalah dengan menekan F9 atau memilih Jalankan > Ganti Titik Henti dari menu saat baris kode dipilih.
Jika Anda mendapatkan peringatan bahwa kondisi titik henti akan hilang, pilih Hapus Titik Henti.
Menjalankan program langkah demi langkah
Visual Studio juga memungkinkan Anda untuk melangkah baris demi baris melalui program dan memantau eksekusinya. Biasanya, Anda akan mengatur titik henti dan mengikuti alur program melalui sebagian kecil kode program Anda. Karena program ini kecil, Anda dapat melalui keseluruhan program langkah demi langkah.
Atur titik henti pada baris kode yang menampilkan perintah "Apa nama Anda?".
Pilih Debug>Masuk ke. Cara lain untuk men-debug satu pernyataan pada satu waktu adalah dengan menekan F11.
Visual Studio menyoroti dan menampilkan panah di samping baris eksekusi berikutnya.
Pada titik ini, jendela Lokal
menunjukkan bahwa array kosong, dan dan memiliki nilai default. Selain itu, Visual Studio telah membuka jendela konsol kosong. Tekan F11. Visual Studio menyoroti pernyataan yang menyertakan penetapan variabel
name. Jendela Lokal menunjukkan bahwanameadalahnull, dan jendela konsol menampilkan string "Siapa nama Anda?".Tanggapi perintah dengan memasukkan string di jendela konsol dan menekan Enter. Konsol tidak responsif, dan string yang Anda masukkan tidak ditampilkan di jendela konsol, tetapi metode Console.ReadLine tetap akan menangkap input Anda.
Tekan F11. Visual Studio menyoroti pernyataan yang menyertakan penetapan variabel
currentDate. Jendela Lokal memperlihatkan nilai yang dikembalikan oleh panggilan ke metode Console.ReadLine. Jendela konsol juga menampilkan string yang Anda masukkan pada prompt.Tekan F11. Jendela Locals menampilkan nilai variabel
currentDatesetelah pengisian dari properti DateTime.Now. Jendela konsol tidak berubah.Tekan F11. Visual Studio memanggil metode Console.WriteLine(String, Object, Object). Jendela konsol menampilkan string yang diformat.
Pilih Debug>Keluar. Cara lain untuk menghentikan eksekusi langkah demi langkah adalah dengan menekan Shift+F11.
Jendela konsol menampilkan pesan dan menunggu Anda menekan tombol.
Tekan tombol apa pun untuk menutup jendela konsol dan menghentikan debugging.
Visual Studio Code juga memungkinkan Anda untuk melangkah baris demi baris melalui program dan memantau eksekusinya. Biasanya, Anda akan mengatur titik henti dan mengikuti alur program melalui sebagian kecil kode program Anda. Karena program ini kecil, Anda dapat melalui keseluruhan program langkah demi langkah.
Atur titik henti pada baris kode yang menampilkan perintah "Apa nama Anda?".
Tekan F5 untuk memulai debugging.
Visual Studio Code menyoroti garis titik henti.
Pada titik ini, jendela Variabel menunjukkan bahwa
argsarray kosong, dannamecurrentDatememiliki nilai default.Pilih Langkah Masuk dari bilah alat Debug atau tekan F11.
Visual Studio Code menyoroti baris berikutnya.
Visual Studio Code menjalankan
Console.WriteLineuntuk perintah nama dan menyoroti baris eksekusi berikutnya. Baris berikutnya adalahConsole.ReadLineuntukname. Jendela Variabel tidak berubah, dan tab Terminal menunjukkan perintah "Apa nama Anda?".Pilih Masuk atau tekan F11.
Visual Studio Code menyoroti penetapan variabel
name. Jendela Variabel menunjukkan bahwanamemasihnull.Tanggapi perintah dengan memasukkan string di tab Terminal dan menekan Enter.
Tab Konsol Debug mungkin tidak menampilkan string yang Anda masukkan saat Anda memasukkannya, tetapi Console.ReadLine metode akan mengambil input Anda.
Pilih Masuk atau tekan F11.
Visual Studio Code menyoroti penetapan variabel
currentDate. Jendela Variabel menunjukkan nilai yang dikembalikan oleh panggilan ke Console.ReadLine metode . Tab Terminal menampilkan string yang Anda masukkan saat diminta.Pilih Masuk atau tekan F11.
Jendela Variabel menunjukkan nilai
currentDatevariabel setelah penugasan dari DateTime.Now properti .Pilih Masuk atau tekan F11.
Visual Studio Code memanggil metode Console.WriteLine(String, Object, Object). Jendela konsol menampilkan string yang diformat.
Pilih Keluar atau tekan Shift+F11.
Terminal menampilkan "Tekan tombol apa pun untuk keluar..."
Tekan tombol apa pun untuk keluar dari program.
Gunakan konfigurasi build rilis
Setelah menguji versi Debug aplikasi, Anda juga harus mengkompilasi dan menguji versi Rilis. Versi Rilis menggabungkan pengoptimalan pengkompilasi yang terkadang dapat berdampak negatif pada perilaku aplikasi. Misalnya, pengoptimalan kompilator yang dirancang untuk meningkatkan performa dapat menciptakan kondisi balapan di aplikasi multithread.
Untuk membangun dan menguji versi Release aplikasi konsol Anda, ubah konfigurasi build pada toolbar dari Debug ke Release.
Saat Anda menekan F5 atau memilih Build Solution dari menu Build, Visual Studio mengkompilasi versi Rilis aplikasi. Anda dapat mengujinya seperti yang Anda lakukan pada versi Debug.
Untuk membangun dan menguji versi Rilis aplikasi konsol Anda, buka Terminal dan jalankan perintah berikut:
dotnet run --configuration Release
Untuk membuat dan menguji versi Rilis aplikasi konsol Anda, jalankan perintah berikut di terminal:
dotnet run --configuration Release HelloWorld.cs
Langkah selanjutnya
Dalam tutorial ini, Anda menggunakan alat debugging. Dalam tutorial berikutnya, Anda menerbitkan versi aplikasi yang dapat disebarkan.