Bagikan melalui


Tutorial: Melakukan debug pada aplikasi konsol .NET

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.

  1. Mulai Visual Studio.

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

    Toolbar Visual Studio dengan debug disorot

Mengatur titik henti

Titik henti untuk sementara mengganggu eksekusi aplikasi sebelum baris dengan titik henti dijalankan.

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

    Jendela Program Visual Studio dengan titik penghentian

  2. Tekan F5 untuk menjalankan program dalam mode Debug. Cara lain untuk memulai debugging adalah dengan memilih Debug>Mulai Debugging dari menu.

  3. Masukkan string di jendela konsol saat program meminta nama, lalu tekan Enter.

  4. Eksekusi program berhenti ketika mencapai titik henti dan sebelum metode Console.WriteLine dijalankan. Jendela Lokal menampilkan nilai variabel yang ditentukan dalam metode yang sedang dijalankan.

    Screenshot titik henti di Visual Studio

  1. Mulai Visual Studio Code.

  2. Buka folder proyek yang Anda buat di Buat aplikasi konsol .NET.

  3. Buka file Program.cs.

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

    Set titik henti

  1. Buka GitHub Codespace yang Anda buat di Buat aplikasi konsol .NET.

  2. Buka file HelloWorld.cs .

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

    Set titik henti

Mulai debug

Eksekusi program berhenti ketika mencapai titik henti, seperti yang dijelaskan di bagian sebelumnya. Jendela Lokal menampilkan nilai variabel yang ditentukan dalam metode yang sedang dijalankan.

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.

  1. Buka tampilan Debug dengan memilih ikon Debugging di menu sisi kiri.

    Buka tab Debug di Visual Studio Code

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

    Mulai debugging

  3. Jika diminta untuk Pilih Konfigurasi Peluncuran, pilih C#: Debug File Aktif.

  4. Pilih tab Konsol Debug untuk melihat perintah "Apa nama Anda?" yang ditampilkan program sebelum menunggu respons.

    Pilih tab Konsol Debug

  5. Masukkan string di jendela Konsol Debug sebagai respons terhadap permintaan nama, lalu tekan Enter.

    Eksekusi program berhenti ketika mencapai titik henti dan sebelum Console.WriteLine metode berjalan. Bagian Lokal dari jendela Variabel menampilkan nilai variabel yang ditentukan dalam metode yang sedang berjalan.

    Titik henti terkena, memperlihatkan Variabel Lokal

Secara default, GitHub Codespaces menggunakan konfigurasi build Debug, sehingga Anda tidak perlu mengubahnya sebelum melakukan debugging.

  1. Buka tampilan Debug dengan memilih ikon Debugging di menu sisi kiri.

    Buka tab Debug di Visual Studio Code

  2. Pilih Jalankan dan Debug. Jika diminta, pilih C# sebagai debugger lalu pilih C#: Debug File Aktif sebagai Konfigurasi Peluncuran.

  3. Pilih tab Konsol Debug untuk melihat perintah "Apa nama Anda?" yang ditampilkan program sebelum menunggu respons.

  4. Masukkan string di jendela Konsol Debug sebagai respons terhadap permintaan nama, lalu tekan Enter.

    Eksekusi program berhenti ketika mencapai titik henti dan sebelum Console.WriteLine metode berjalan. Bagian Lokal dari jendela Variabel menampilkan nilai variabel yang ditentukan dalam metode yang sedang berjalan.

    Titik henti terkena, memperlihatkan Variabel Lokal

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.

  1. Jika jendela Immediate tidak terlihat, tampilkan dengan memilih Debug>Windows>Immediate.

  2. Masukkan name = "Gracie" di jendela langsung dan tekan tombol Enter .

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

    Locals dan Windows Langsung dalam Visual Studio

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

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

  1. Pilih tab Konsol Debug .

  2. Masukkan name = "Gracie" pada perintah di bagian bawah jendela Konsol Debug dan tekan Enter.

    Mengubah nilai variabel

  3. 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 name dan currentDate .

  4. Lanjutkan eksekusi program dengan memilih tombol Lanjutkan di bilah alat. Cara lain untuk melanjutkan adalah dengan menekan F5.

    Lanjutkan debug

    Nilai yang ditampilkan di jendela konsol sesuai dengan perubahan yang Anda buat di Konsol Debug.

    Terminal memperlihatkan nilai yang dimasukkan

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

  1. 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 menampilkan panel pengaturan titik henti - C#

  2. 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 menghasilkan true.

    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.

  3. Pilih Tutup untuk menutup dialog.

  4. Mulai program dengan debugging dengan menekan F5.

  5. Di jendela konsol, tekan tombol Enter saat diminta untuk memasukkan nama Anda.

  6. Karena kondisi yang Anda tentukan (namenull atau String.Empty) telah terpenuhi, eksekusi program berhenti ketika mencapai titik henti dan sebelum metode Console.WriteLine dijalankan.

  7. Pilih jendela Locals, yang menunjukkan nilai variabel yang bersifat lokal untuk metode yang sedang dijalankan. Dalam hal ini, Main adalah metode yang sedang dijalankan. Amati bahwa nilai variabel name"", atau String.Empty.

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

    Jendela Langsung mengembalikan nilai true setelah pernyataan dijalankan - C#

  9. Tekan F5 untuk melanjutkan eksekusi program.

  10. Tekan tombol apa pun untuk menutup jendela konsol dan menghentikan debugging.

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

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

    Menu konteks titik henti

  2. Pilih Expression di menu drop-down, masukkan ekspresi bersyarah berikut, dan tekan Enter.

    String.IsNullOrEmpty(name)
    

    Masukkan ekspresi bersyarah

    Setiap kali titik henti tercapai, debugger memanggil metode String.IsNullOrEmpty(name), dan berhenti pada baris ini hanya jika panggilan metode menghasilkan true.

    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.

  3. Mulai program dengan debugging dengan menekan F5.

  4. Di tab Konsol Debug , tekan Enter saat diminta untuk memasukkan nama Anda.

    Karena kondisi yang Anda tentukan (name adalah null atau String.Empty) telah terpenuhi, eksekusi program berhenti ketika mencapai titik henti dan sebelum Console.WriteLine metode berjalan.

    Jendela Variabel menunjukkan bahwa nilai name variabel adalah "", atau String.Empty.

  5. Konfirmasikan nilainya adalah string kosong dengan memasukkan pernyataan berikut di prompt Konsol Debug dan menekan Enter. Hasilnya adalah true.

    name == String.Empty
    
  6. Pilih tombol Lanjutkan pada toolbar untuk melanjutkan eksekusi program.

  7. Tekan Enter untuk keluar dari program dan menghentikan debugging.

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

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

  1. Atur titik henti pada baris kode yang menampilkan perintah "Apa nama Anda?".

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

    Visual Studio melangkah ke metode - C#

    Pada titik ini, jendela Lokal menunjukkan bahwa array kosong, dan dan memiliki nilai default. Selain itu, Visual Studio telah membuka jendela konsol kosong.

  3. Tekan F11. Visual Studio menyoroti pernyataan yang menyertakan penetapan variabel name. Jendela Lokal menunjukkan bahwa name adalah null, dan jendela konsol menampilkan string "Siapa nama Anda?".

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

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

  6. Tekan F11. Jendela Locals menampilkan nilai variabel currentDate setelah pengisian dari properti DateTime.Now. Jendela konsol tidak berubah.

  7. Tekan F11. Visual Studio memanggil metode Console.WriteLine(String, Object, Object). Jendela konsol menampilkan string yang diformat.

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

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

  1. Atur titik henti pada baris kode yang menampilkan perintah "Apa nama Anda?".

  2. Tekan F5 untuk memulai debugging.

    Visual Studio Code menyoroti garis titik henti.

    Pada titik ini, jendela Variabel menunjukkan bahwa args array kosong, dan namecurrentDate memiliki nilai default.

  3. Pilih Langkah Masuk dari bilah alat Debug atau tekan F11.

     tombolStep-Into

    Visual Studio Code menyoroti baris berikutnya.

  4. Visual Studio Code menjalankan Console.WriteLine untuk perintah nama dan menyoroti baris eksekusi berikutnya. Baris berikutnya adalah Console.ReadLine untuk name. Jendela Variabel tidak berubah, dan tab Terminal menunjukkan perintah "Apa nama Anda?".

  5. Pilih Masuk atau tekan F11.

    Visual Studio Code menyoroti penetapan variabel name. Jendela Variabel menunjukkan bahwa name masih null.

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

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

  8. Pilih Masuk atau tekan F11.

    Jendela Variabel menunjukkan nilai currentDate variabel setelah penugasan dari DateTime.Now properti .

  9. Pilih Masuk atau tekan F11.

    Visual Studio Code memanggil metode Console.WriteLine(String, Object, Object). Jendela konsol menampilkan string yang diformat.

  10. Pilih Keluar atau tekan Shift+F11.

     tombolStep-Out

    Terminal menampilkan "Tekan tombol apa pun untuk keluar..."

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

default Visual Studio toolbar dengan rilis disorot

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.