Memahami debugger .NET di Visual Studio Code
Di unit sebelumnya, Anda mengetahui bahwa debugger membantu Anda mengontrol eksekusi program dan mengamati statusnya. Di bagian ini, Anda akan mempelajari cara melakukan kedua tugas tersebut di Visual Studio Code.
Mari kita mulai dengan mempelajari cara mengonfigurasi debugger Visual Studio Code untuk menggunakannya dengan .NET.
Mengonfigurasi Visual Studio Code untuk debugging .NET
Saat pertama kali membuka file C# di Visual Studio Code, Anda akan menerima permintaan untuk menginstal ekstensi yang direkomendasikan untuk C#.
Visual Studio Code akan menginstal ekstensi C# dan menampilkan perintah tambahan untuk menambahkan aset yang diperlukan untuk membangun dan men-debug proyek Anda.
Nota
Dukungan bahasa C# di Visual Studio Code adalah penginstalan opsional dari Marketplace. Visual Studio Code secara otomatis meminta Anda menginstal ekstensi ini saat Anda membuka file C# jika Anda belum melakukannya. Jika Anda mengalami masalah saat membangun (build) atau melakukan debug aplikasi .NET di Visual Studio Code, Anda harus memverifikasi bahwa proyek Anda memiliki aset yang dibutuhkan untuk dukungan bahasa C#.
Titik Henti
Seperti yang Anda pelajari di unit sebelumnya, debugger membantu Anda menganalisis dan mengontrol eksekusi program Anda. Saat Anda memulai debugger Visual Studio Code, debugger tersebut segera mulai menjalankan kode Anda. Karena kode Anda dijalankan dengan cepat, Anda harus dapat menjeda program pada pernyataan apa pun. Anda akan menggunakan titik henti untuk melakukannya.
Anda dapat menambahkan titik henti di Visual Studio Code dengan mengklik di sisi kiri nomor baris pada baris yang ingin Anda putuskan. Anda akan melihat lingkaran merah setelah titik henti diaktifkan. Untuk menghapusnya, pilih lingkaran merah lagi.
Jika Anda mengklik kanan untuk menambahkan titik henti, Anda juga dapat memilih Tambah Titik Henti Bersyarat. Titik henti khusus ini memungkinkan Anda memasukkan suatu kondisi untuk menghentikan eksekusi. Titik henti ini hanya akan aktif ketika kondisi yang ditentukan terpenuhi. Anda juga dapat mengubah titik henti yang ada dengan mengklik kanan dan memilih Edit Titik Henti.
Gambaran umum debugger Visual Studio Code
Setelah menyiapkan titik henti dan memulai aplikasi, panel informasi dan kontrol baru akan muncul di layar.
- Kontrol pengaktifan debugger
- Status variabel
- Status variabel yang diawasi
- Tumpukan panggilan saat ini
- Titik Henti
- Kontrol Pelaksanaan
- Langkah eksekusi saat ini
- Konsol debug
Kontrol pengaktifan debugger
Di bagian atas bar samping, Anda dapat menemukan kontrol peluncuran:
- Memulai debug.
- Pilih konfigurasi peluncuran aktif.
- Sunting file
launch.json. Buat jika perlu. - Buka terminal debug.
Menampilkan dan mengedit status variabel Anda
Saat Anda menganalisis penyebab cacat program, perhatikan status variabel Anda untuk mencari perubahan yang tidak terduga. Anda dapat menggunakan panel Variabel untuk melakukannya.
Variabel Anda ditampilkan diatur menurut cakupan:
- Variabel lokal: Dapat diakses dalam cakupan saat ini, biasanya fungsi saat ini.
- Variabel global: Dapat diakses dari mana saja dalam program Anda. Objek sistem dari runtime JavaScript juga disertakan, jadi jangan terkejut jika Anda melihat banyak hal di sana.
- Variabel penutupan: Dapat diakses dari penutupan saat ini, jika ada. Penutupan memadukan ruang lingkup lokal dari sebuah fungsi dengan ruang lingkup dari fungsi luar yang dinaunginya.
Anda dapat membuka lingkup dan variabel dengan memilih panah. Ketika Anda membuka objek, Anda dapat melihat semua properti yang ditentukan pada objek tersebut.
Dimungkinkan untuk mengubah nilai variabel dengan cepat dengan mengklik ganda variabel.
Dengan mengarahkan mouse ke atas parameter fungsi atau variabel langsung di jendela editor, Anda juga dapat mengintip nilainya.
Variabel tonton
Mungkin melelahkan untuk mencari status variabel setiap kali Anda ingin melacaknya di seluruh waktu atau fungsi yang berbeda. Di situlah Watch panel berguna.
Anda dapat memilih tombol Plus untuk memasukkan nama variabel atau ekspresi untuk ditonton. Sebagai alternatif, Anda dapat mengklik kanan variabel di panel Variabel dan memilih Tambahkan untuk menonton.
Semua ekspresi di dalam panel jam tangan diperbarui secara otomatis saat kode Anda berjalan.
Stak Panggilan
Setiap kali program Anda memasukkan fungsi, entri ditambahkan ke tumpukan panggilan. Ketika aplikasi Anda menjadi kompleks dan Anda memiliki fungsi yang dipanggil dalam fungsi berkali-kali, tumpukan panggilan mewakili jejak panggilan fungsi.
Sangat berguna untuk menemukan sumber pengecualian. Jika Anda mengalami crash tak terduga dalam program, Anda akan sering melihat sesuatu di konsol seperti contoh berikut:
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
at OrderProcessor.OrderQueue.ProcessNewOrders(String[] orderIds) in C:\Users\Repos\OrderProcessor\OrderQueue.cs:line 12
at OrderProcessor.Program.Main(String[] args) in C:\Users\Repos\OrderProcessor\Program.cs:line 9
Grup baris at [...] di bawah pesan kesalahan disebut "stack trace" . Jejak tumpukan memberikan nama dan asal setiap fungsi yang dipanggil sebelum menghasilkan pengecualian. Mungkin agak sulit untuk didefinisikan, karena juga mencakup fungsi internal dari runtime .NET.
Di situlah panel tumpukan panggilan Visual Studio Code berguna. Ini memfilter informasi yang tidak diinginkan untuk menunjukkan kepada Anda hanya fungsi yang relevan dari kode Anda sendiri secara default. Anda kemudian dapat melepaskan tumpukan panggilan ini untuk mencari tahu dari mana pengecualian tersebut berasal.
Panel titik henti
Di panel Breakpoints , Anda dapat melihat dan mengaktifkan/mematikan semua titik henti yang ditempatkan dalam kode Anda. Anda juga dapat mengalihkan opsi untuk memecah pengecualian yang tertangkap atau tidak tertangkap. Anda dapat menggunakan panel Titik Henti untuk memeriksa status program Anda dan melacak kembali sumber pengecualian dengan menggunakan Tumpukan Panggilan ketika pengecualian terjadi.
Pelaksanaan kontrol
Anda dapat mengontrol alur eksekusi program Anda dengan menggunakan kontrol ini.
Dari kiri ke kanan, kontrolnya adalah:
- Lanjutkan atau jeda eksekusi: Jika eksekusi dijeda, eksekusi akan berlanjut hingga titik henti berikutnya tercapai. Jika program Anda berjalan, tombol beralih ke tombol jeda yang dapat Anda gunakan untuk menjeda eksekusi.
- Langkah di atas: Menjalankan pernyataan kode berikutnya dalam konteks saat ini.
-
Masuk ke: Seperti Langkah di atas, tetapi jika pernyataan berikutnya adalah panggilan fungsi, lanjutkan ke pernyataan kode pertama fungsi ini (sama dengan perintah
step). -
Melangkah keluar: Jika Anda berada di dalam fungsi, jalankan kode fungsi ini yang tersisa dan lompat kembali ke pernyataan setelah panggilan fungsi awal (sama dengan perintah
out). - Mulai ulang: Mulai ulang program Anda dari awal.
- Hentikan: Akhiri eksekusi dan keluar dari debugger.
Menggunakan konsol debug
Anda dapat menampilkan atau menyembunyikan konsol debug dengan memilih Ctrl+Shift+Y untuk Windows dan Linux. Pilih Cmd+Shift+Y untuk Mac. Anda dapat menggunakan konsol debug untuk memvisualisasikan log konsol aplikasi Anda. Anda juga dapat menggunakannya untuk mengevaluasi ekspresi atau menjalankan kode dalam konten eksekusi saat ini, seperti perintah atau nama variabel di debugger .NET bawaan.
Anda dapat memasukkan ekspresi .NET di bidang input di bagian bawah konsol debug, lalu pilih Masukkan untuk mengevaluasinya. Hasilnya ditampilkan langsung di konsol.
Dengan menggunakan konsol debug, Anda dapat dengan cepat memeriksa nilai variabel, menguji fungsi dengan nilai yang berbeda, atau mengubah status saat ini.
Nota
Meskipun konsol debug sangat berguna untuk mengeksekusi dan mengevaluasi kode .NET, itu bisa sedikit membingungkan ketika Anda mencoba menjalankan atau men-debug aplikasi Konsol .NET karena konsol debug tidak menerima input terminal untuk program yang sedang berjalan.
Untuk menangani input terminal saat debugging, Anda dapat menggunakan terminal internal (salah satu jendela Visual Studio Code) atau terminal eksternal. Untuk tutorial ini, Anda menggunakan terminal terintegrasi.
Buka .vscode/launch.json.
Ubah pengaturan
consolemenjadiintegratedTerminaldari:"console": "internalConsole",Ke:
"console": "integratedTerminal",Simpan perubahan Anda.
Di unit berikutnya, Anda akan mempelajari cara menggunakan debugger untuk memperbaiki bug dalam kode Fibonacci yang kita lihat sebelumnya.