Bagikan melalui


Tutorial: Men-debug aplikasi konsol .NET menggunakan Visual Studio

Tutorial ini memperkenalkan alat debugging yang tersedia di Visual Studio.

Penting

Semua pintasan keyboard didasarkan pada default dari Visual Studio. Pintasan keyboard Anda mungkin bervariasi, untuk informasi selengkapnya, lihat Pintasan keyboard di Visual Studio.

Prasyarat

Tutorial ini berfungsi dengan aplikasi konsol yang Anda buat di Membuat aplikasi konsol .NET menggunakan Visual Studio.

Menggunakan konfigurasi Debug build

Debug dan Rilis 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 bawaan, Visual Studio menggunakan konfigurasi build Debug, sehingga Anda tidak perlu mengubahnya sebelum debugging.

  1. Mulai Visual Studio.

  2. Buka proyek yang Anda buat di Membuat aplikasi konsol .NET menggunakan Visual Studio.

    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 sementara menghentikan eksekusi aplikasi sebelum baris dengan titik henti tersebut 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 set titik henti

  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.

    Cuplikan layar titik henti di Visual Studio

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

    Lokal dan Windows Langsung di Visual Studio 2019

  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.

    jendela Konsol memperlihatkan nilai yang dimasukkan

  5. Tekan sembarang tombol untuk keluar dari aplikasi dan hentikan debugging.

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 Bersyarat , masukkan kode berikut di bidang yang menunjukkan kode contoh yang menguji apakah x adalah 5.

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

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

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

    C#

    Visual Studio masuk ke metode - C#

    Visual Basic

    Visual Studio masuk ke metode - Visual Basic

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

  2. Tekan F11. Visual Studio sekarang menyoroti baris eksekusi berikutnya. Jendela Locals tidak berubah, dan jendela konsol tetap kosong.

    C#

    Langkah masuk metode Visual Studio - C#

    Visual Basic

    Visual Studio masuk ke metode sumber - Visual Basic

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

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.

toolbar Visual Studio default dengan rilis yang diberi sorotan

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.

Langkah berikutnya

Dalam tutorial ini, Anda menggunakan alat penelusuran kesalahan Visual Studio. Dalam tutorial berikutnya, Anda menerbitkan versi aplikasi yang dapat disebarkan.