Memahami Debugger Dan Fungsinya

Debugging adalah proses metodis untuk menemukan dan mengurangi jumlah bug, atau cacat dalam program komputer.

Testing vs Debugging
  1. Testing dimulai dengan kondisi yang ditentukan dan hasil yang ditargetkan; Debugging proses tidak terstruktur untuk menemukan dan menghapus bug dari sistem.
  2. Testing bisa dilakukan siapa saja, bergantung pada metode yang dipilih; Debugging dilakukan pengembang untuk sekaligus melakukan perbaikan.

Konsep Umum Debugging

Proses debugging dibagi menjadi 4 langkah utama:

Memahami Debugger Dan Fungsinya

Teknik-teknik Debugging

Memahami Debugger Dan Fungsinya

Proses Pelaksanaan Debugging

Memahami Debugger Dan Fungsinya

Alat-alat Debugging

Memahami Debugger Dan Fungsinya

Apa itu Debugger?

Debugger adalah program komputer yang membantu dalam mendeteksi dan memperbaiki kesalahan dalam program komputer lainnya. Debugger bekerja melalui baris demi baris kode untuk mencari tahu apa yang salah, di mana, dan mengapa.

Memahami Debugger Dan Fungsinya

Proses Debugger Visual Studio
  1. Aktifkan breakpoint dan jalankan debugger
  2. Navigasi kode di debugger dengan step command
  3. Periksa variabel dengan Data Tip
  4. Periksa variabel dengan Autos dan Local Window
  5. Atur Watch
  6. Periksa Call Stack
  7. Periksa Exception
  8. Konfigurasi Debugging

Contoh Proses Debugger Visual Studio

1. Aktifkan Breakpoint dan Jalankan Debugger
  • Breakpoint merupakan salah satu fitur penting di dalam debugger yang berfungsi untuk menghentikan eksekusi program sesuai permintaan, baik pada nomor baris tertentu, di awal fungsi, di alamat tertentu atau pun secara kondisional. Fitur ini berguna untuk mengetahui baris kode atau bagian kode yang ingin diperiksa secara detail.
  • Setelah breakpoint diterapkan, maka langkah selanjutnya adalah melakukan debugging dengan menekan F5 (Debug > Start Debugging).

Memahami Debugger Dan Fungsinya
Memahami Debugger Dan Fungsinya

2. Navigasi Kode dengan Step Command
  • Step Into (debugger attached): Tekan F11 (Debug > Step Into). Jika menggunakan command ini, maka debugger akan berhenti pada pernyataan pertama yang dijalankan dan memungkinkan pengembang memeriksa aliran eksekusi secara mendetail.
  • Step Over (debugger call): Tekan F10 (Debug > Step Over). F10 menjalankan debugger tanpa masuk ke fungsi atau metode dalam kode aplikasi (kode masih dijalankan), dan memungkinkan pengembang dapat melewati kode yang tidak diminati.
  • Step Property: Secara default debugger melompati properti dan field yang dikelola, tetapi perintah Step Into Specific memungkinkan pengembang untuk mengganti perilaku ini. Klik kanan pada properti atau field dan pilih Step Into Specific, lalu pilih salah satu opsi yang tersedia.
  • Step Out: Tekan Shift + F11 (atau Debug> Step Out). Perintah ini melanjutkan eksekusi aplikasi (dan memajukan debugger) hingga fungsi saat ini kembali.

Memahami Debugger Dan Fungsinya

3. Periksa Variabel dengan Data Tip
  • Data Tip merupakan cara cepat untuk memeriksa nilai property pada objek.
  • Data Tip dapat dimunculkan dengan Klik kanan pada variabel > Pilih QuickWatch (Shift F9 atau CTRL+D, Q).
  • Selain itu, bisa juga dengan mengarahkan ke objek dengan mouse dan pengembang dapat melihat nilai properti default. Perluas objek untuk melihat semua propertinya.

Memahami Debugger Dan Fungsinya

4. Periksa variabel dengan Autos dan Local Window
  • Autos Windows akan menampilkan semua variabel yang digunakan di baris saat ini dan di baris sebelumnya. Ini bisa berupa variabel lokal, anggota kelas atau variabel statis.
  • Local Window akan menunjukkan variabel lokal dari cakupan saat ini. Biasanya dimulai dengan ini, yang mewakili kelas saat ini.
  • Di Autos dan Local Windows, pengembang dapat mengklik dua kali pada Value Field apa pun dan mengubah nilai variabel. Namun, mungkin akan menghasilkan nilai yang tidak diinginkan.

Memahami Debugger Dan Fungsinya

5. Atur Watch
  • Watch Window digunakan untuk menentukan variabel (atau pernyataan) yang ingin diperhatikan.
  • Untuk mengatur Watch, klik kanan objek dan pilih Add Watch.
  • Dalam contoh ini, pengembang memiliki Watch yang disetel pada objek f, dan dimungkinkan untuk melihat nilainya berubah saat berpindah melalui debugger. Tidak seperti jendela variabel lainnya, Watch Window selalu menampilkan variabel yang dilihat. Biasanya memiliki warna abu-abu saat berada di luar ruang lingkup).

Memahami Debugger Dan Fungsinya

6. Watch Window

  • Watch Window memungkinkan pengembang untuk melihat nilai variabel dan pernyataan saat debugging. Ini seperti DataTip yang diperoleh saat mengarahkan kursor ke variabel, kecuali pengembang dapat menulis pernyataan apa pun yang diinginkan. Tersedia dari Debug >Windows>Watch>Watch 1 atau Ctrl+Alt+W+1.
  • Aturan dan perilaku Watch Window:
  • Jika pernyataan tidak dapat dikompilasi dalam cakupan dan konteks saat ini, maka pengembang akan melihat kesalahan compiler.
  • Pengembang dapat mengklik tombol refresh untuk mencoba dan mengevaluasi ulang pernyataan.
  • Jika nilai telah berubah sejak breakpoint terakhir, ia akan ditampilkan dengan warna merah.
  • Pengembang dapat mengevaluasi metode dan properti di Watch Window. Ini dapat memiliki efek samping pada status aplikasi.

Memahami Debugger Dan Fungsinya

7. Periksa Call Stack
  • Call Stack Window menunjukkan urutan metode dan fungsi yang dipanggil. Baris teratas menunjukkan fungsi saat ini (metode Update dalam contoh ini). Baris kedua menunjukkan bahwa Update dipanggil dariproperti Path.set, dan seterusnya. Call Stack adalah cara yang baik untuk memeriksa dan memahami alur eksekusi suatu aplikasi.
  • Pengembang mengklik dua kali pada baris kode untuk melihat kode sumber tersebut dan mengubah cakupan saat ini yang sedang diperiksa oleh debugger.

Memahami Debugger Dan Fungsinya

8. Periksa Exception

  • Saat aplikasi menampilkan exception, debugger akan membawa pengembang ke baris kode yang menampilkan exception tersebut.
  • Pada gambar di atas, Exception Helper menunjukkan System.ArgumentException dan pesan kesalahan yang menyatakan bahwa path tersebut bukan merupakan bentuk yang sah.
  • DirectoryInfo pada gambar di atas memberikan kesalahan pada string kosong yang disimpan dalam variabel nilai.
  • Exception Helper dapat membantu pengembang men-debug kesalahan, melihat detail error, menambahkan Watch dari Exception Helper, mengubah kondisi untuk menampilkan pengecualian tertentu.

Memahami Debugger Dan Fungsinya

9. Konfigurasi Debugging

  • Pengembang dapat mengonfigurasi debugger untuk menampilkan informasi khusus menggunakan fitur seperti atribut DebuggerDisplay atau NatVis framework.
  • Properti debug spesifik untuk setiap jenis proyek. Misalnya, pengembang bisa menentukan argumen untuk diteruskan ke aplikasi saat memulainya. Pengembang dapat mengakses properti khusus proyek dengan mengklik kanan proyek di Solution Explorer dan memilih Properties. Properti debug biasanya muncul di tab Build atau Debug, bergantung pada jenis proyek tertentu.

Memahami Debugger Dan Fungsinya

Kesimpulan

Proses debugging tidak berjalan cukup singkat, melainkan bertahap untuk memastikan aplikasi yang dikembangkan benar-benar telah bebas dari kesalahan. Proses debugging dapat memanfaatkan beragam alat dan fitur debugger yang dapat dipilih sesuai dengan kebutuhan.

Sumber Referensi :

Buku : Adragna, P. (t.thn.). Software debugging techniques. Queen Mary: University of London.
Website : sudonull | techopedia