Ini dapat membantu mengidentifikasi dan mengatasi kerusakan aplikasi. Pada artikel ini, penulis akan menggunakan Eclipse, alat pengembangan yang umum digunakan, untuk men-debug aplikasi Java. Namun, metode debugging yang diperkenalkan di sini pada dasarnya bersifat universal dan juga berlaku untuk NetBeans IDE. Kami akan fokus pada runtime.
Sebelum memulai, saya sarankan Anda membaca artikel Pintasan Eclipse, yang akan memberi Anda banyak kemudahan. Pada artikel ini, versi Eclipse Juno (Eclipse 4.2) digunakan. Saya ingin memberi Anda 3 saran sebelum memulai!
Jangan gunakan System.out.println sebagai alat debugging. Aktifkan level logging untuk semua komponen yang terlibat dan gunakan penganalisis log untuk membaca log.
1. Titik henti sementara bersyarat
Jika Anda tidak tahu cara menambahkan breakpoint, cukup klik pada panel kiri (sebelum nomor baris) dan breakpoint akan dibuat. Di antarmuka debugging, tampilan "Breakpoints" akan mencantumkan semua breakpoint yang dibuat. Kita dapat menambahkan kondisi Boolean ke dalamnya, yaitu breakpoint akan diaktifkan dan jika kondisi Boolean benar, breakpoint akan dijalankan, jika tidak maka eksekusi akan dilewati.
2. Titik henti sementara pengecualian
Pada tampilan breakpoint, ada tombol tanda J! Kita dapat menggunakan tombol ini untuk menambahkan breakpoint pengecualian Java. Misalnya, jika kita ingin program tetap dapat melanjutkan proses debug ketika menemukan NullPointerException, maka kita dapat menggunakan tombol ini untuk menambahkan breakpoint pengecualian!
3. Titik-titik pemantauan
Ini adalah fitur yang sangat bagus yang menghentikan eksekusi program dan memungkinkan debugging ketika properti yang dipilih diakses atau diubah. Pilih variabel kelas dalam tampilan Outline dan pilih Switch Watchpoint dari menu konteks. Atribut watchpoint akan dibuat, dan semua watchpoint akan ditampilkan dalam bentuk daftar di tampilan Breakpoints.
4.Penilaian/Inspeksi
Tekan Ctrl+Shift+D atau Ctrl+Shift+I untuk menampilkan nilai variabel atau ekspresi yang dipilih. Kita juga dapat menambahkan titik pantau permanen ke variabel atau ekspresi. Saat program di-debug, titik pantau ini akan ditampilkan dalam tampilan Ekspresi.
5. Ubah nilai variabel
Selama debugging, kita dapat mengubah nilai variabel. Pertama pilih variabel lalu masuk ke tampilan Variabel, dan masukkan nilai pada kolom Nilai yang sesuai sesuai dengan jenis variabel.
6. Hentikan eksekusi pada fungsi Utama
Dalam pengaturan run/debug, ada tab "Utama" di kotak dialog edit konfigurasi, dan kita dapat mencentang kotak "Berhenti di utama". Jika dipilih, saat men-debug program Java berdasarkan metode utama, program akan menghentikan eksekusi pada baris pertama metode utama.
7. Variabel lingkungan
Daripada menambahkan variabel lingkungan di properti sistem, kita dapat dengan mudah menambahkannya di kotak dialog Edit Konfigurasi.
8. Jatuhkan ke Bingkai
Ini juga salah satu fitur favorit saya. Selama proses debug, Anda dapat melompat kembali ke awal bingkai tumpukan panggilan dan nilai variabel akan kembali ke awal. Sesuaikan kedalaman tumpukan sesuai dengan rollback. Tujuan utama dari fungsi ini adalah dengan cepat mengembalikan status semua variabel ke keadaan saat metode mulai dijalankan yang dapat Anda debug beberapa kali jika Anda khawatir. Namun, akan ada beberapa efek samping selama proses eksekusi, misalnya data yang dimasukkan ke dalam database tidak dapat dihapus!
9. Penyaringan distribusi
Saat kita memasukkan metode (F5), kita juga dapat mengakses perpustakaan eksternalnya (seperti java.*). Kita mungkin tidak memerlukan perpustakaan ini, jadi kita dapat menambahkan filter ke halaman tab Perference untuk mengecualikan paket ini.
10. Masuk, keluar dan kembali
Saya tinggalkan ini untuk poin terakhir, inilah hal-hal yang harus dipahami (dan sebaiknya dikuasai) saat debugging:
F5 - Enter: Pindah ke langkah berikutnya. Jika ada pemanggilan metode di baris saat ini, kontrol akan melompat ke baris pertama dari metode yang dipanggil untuk dieksekusi.
F6 - Lompat keluar: pindah ke baris berikutnya. Jika ada pemanggilan metode pada baris saat ini, maka metode tersebut akan langsung berpindah ke baris berikutnya untuk dieksekusi. Itu tidak akan masuk ke badan metode yang dipanggil.
F7 - Return: Keluar dari metode saat ini dan lanjutkan eksekusi.
F8—Pindah ke breakpoint berikutnya untuk eksekusi.