Selain menulis kode sebagian besar waktu, programmer menghabiskan banyak waktu debugging kode. Bahkan dikatakan bahwa itu men -debug kode atau akan men -debug kode. :)
Hari ini kita akan berbicara tentang beberapa tips untuk debugging kode dan beberapa cara untuk dengan cepat menemukan masalah saat menggunakan debugger yang disediakan oleh IDE.
Teman -teman yang melihat ini, jangan menganggap saya sebagai pesta judul segera. Mari kita lihat. Jika Anda memiliki beberapa keterampilan yang lebih baik, silakan tinggalkan pesan.
Mari kita ke topik.
1 debugging multi-threaded
Teman -teman yang telah mengembangkan terlalu banyak aplikasi berulir harus memiliki pemahaman. Kadang -kadang, untuk mengamati berbagai status variabel antara beberapa utas, serta akuisisi kunci, mereka akan berpikir untuk menambahkan breakpoint untuk men -debug kode.
Ketika breakpoint berhenti di IDE, Anda dapat beralih ke utas lain dan menjalankan kode lain tanpa saling mempengaruhi. Tentu saja, ada sakelar di sini, yang dihidupkan secara default di Eclipse.
Namun, itu tidak diaktifkan secara default dalam ide IntelliJ. Artinya, jika Anda menambahkan breakpoint dalam kode dalam ide, meskipun satu utas rusak, utas lainnya telah mengeksekusi.
Setelah menetapkan penangguhan utas yang sama dengan mode gerhana, debugging aplikasi multi-threaded juga dapat dimulai.
Pengaturan sederhana dapat langsung di breakpoint dan mengubah penangguhan ke utas
Ubah pengaturan default di Ide: Switch ke tombol radio "Thread", klik tombol "Make Default" yang muncul
Setelah utas rusak, Anda dapat beralih melalui jendela utas dan terus berjalan di utas lain.
Beralih di sini di IntelliJ Ide
Kami melihat bahwa utas utama dan biliar-1-thread-1 dalam keadaan berjalan, dan beralih ke keduanya dapat terus berjalan.
Pada saat ini, Anda dapat menulis aplikasi multi-threaded, dan menyimpan konten dalam wadah yang tidak aman dari arrylist, dan kemudian mengamati mengapa mereka tidak aman dan masalah apa yang akan terjadi, yang jelas dan jelas.
PS: Izinkan saya memberi tahu Anda di sini, inilah mengapa disarankan untuk memberikan nama yang bermakna saat membuat utas, setidaknya nama yang dapat dikenali. Kalau tidak, Anda tidak dapat membedakan utas mana yang menjadi milik Anda, dan itu merepotkan untuk beralih.
2 eksekusi back
Eksekusi mundur yang disebutkan di sini adalah bahwa kadang-kadang ketika kita men-debug kode, masing-masing metode malas dan memasuki debugging langkah demi langkah. Saat Anda mengamati perubahan nilai variabel, metode tertentu tidak menindaklanjuti, dan nilainya berubah, dan Anda harus melakukannya lagi.
Mengandalkan fungsi eksekusi ke belakang, Anda dapat mundur, seperti fungsi menyesali catur saat bermain catur. Tentu saja, nama operasi punggung ini dinamai sendiri dan dipanggil drop frame di IDE.
Dengan fungsi ini, setelah kami menjatuhkan bingkai saat ini, nilai variabel yang diubah tidak akan dipulihkan. Misalnya, jika Anda masuk ke daftar ke metode yang saat ini dipanggil dan menambahkan konten ke daftar dalam metode, maka ketika turun ke tempat di mana metode dipanggil, daftar tidak akan kembali ke status sebelumnya.
Tetapi ketika metode dipanggil lagi, Anda dapat mengamati ketika daftar diubah, setidaknya Anda tidak perlu menjalankan program lagi. Anda bahkan dapat mundur jika Anda tidak setuju.
3 breakpoint bersyarat
Untuk men -debug kode, Anda perlu menambahkan breakpoint di mana Anda ingin mengamati perubahan, dan kemudian menjalankannya dengan cermat langkah demi langkah.
Namun, jika ada dalam satu loop, atau jika metode ini dipanggil oleh beberapa utas pada saat yang sama, Anda dengan hati -hati mundur dan menemukan bahwa tidak ada konten yang Anda pedulikan, dan lari dari awal loop, tetapi jika masih belum ada konten yang Anda miliki, Anda akan mulai marah.
Bahkan, saat menambahkan breakpoint, kita dapat menambahkan kondisi tertentu ke breakpoint, sehingga breakpoint hanya akan berlaku ketika kondisi yang ditentukan dipenuhi.
Dalam ide IntelliJ, klik kanan pada breakpoint, dan kotak kondisi pada gambar di bawah ini akan muncul, cukup masukkan kondisi yang ditentukan.
Dengan breakpoint bersyarat, kode yang tidak terkait dan tidak tertarik dapat dilewati secara langsung.
4 kode fragmen
Saya tidak memikirkan nama apa yang harus diungkapkan ini. Kadang -kadang selama proses debugging, saya tiba -tiba ingin menghibur sepotong kode yang terkait dengan ini tetapi tidak dalam file sumber untuk mengamatinya untuk membantu dalam analisis masalah. Pada titik ini Anda akan menghentikan program, menambahkan kode dan menjalankannya lagi?
Ada fungsi dalam ide untuk menjalankan cuplikan kode, yang dapat menjalankan kode yang Anda tulis untuk sementara waktu dalam konteks kode saat ini.
Misalnya, metode saat ini lulus dalam daftar, tetapi metode ini tidak memiliki elemen yang perlu Anda gunakan dalam kondisi selanjutnya. Pada saat ini, Anda dapat untuk sementara waktu menggunakan fungsi eksekusi kode fragmen dan menambahkan satu.
Perhatikan bahwa dalam ide IntelliJ, tombol di atas, seperti kalkulator kecil, adalah fungsi sementara. Setelah mengklik, kotak Evaluasi Ekspresi (Ctrl+F8) di bawah tombol akan muncul. Masukkan kode dan klik Evaluasi di sudut kanan bawah. Nilai pengembalian akan ditampilkan pada hasilnya.
Ini setara dengan sementara mengubah konten variabel.
Kemudian, Anda juga dapat memanggil metode objek, menjalankan fungsi, mendapatkan nilai atribut, dll.
5 Lihat Nilai Modifikasi Variabel
Setiap IDE menyediakan jendela untuk mengamati nilai variabel konteks saat ini saat men -debug kode. Bahkan, selain melihat, beberapa tipe dasar non-final juga dapat dimodifikasi langsung di sini. Dengan cara ini, jika beberapa loop dieksekusi, nilai yang diharapkan dapat dipulihkan setiap kali, dan tidak perlu memulai kembali program.
Kode yang umum digunakan secara otomatis menyelesaikan kunci pintasan
| Kunci Pintasan | menjelaskan |
|---|---|
| sout | System.out.println (""); |
| PSVM | Metode utama |
Pengaturan umum
Kunci pintasan yang biasa digunakan
| Kunci Pintasan | menjelaskan |
|---|---|
| Alt + ctrl + s | Buka Pengaturan |
| Alt + ctrl + shift + s | Buka Project Structrue |
| Alt + enter | Perbaikan cepat |
| Alt + / | Penyelesaian Kata Otomatis |
| Alt + insert | Kode yang dihasilkan secara otomatis, seperti Setter, Getter, Tostring, dll. |
| Alt + shift + v | Pindahkan anggota kelas ke kelas lain |
| Ctrl + shift + f | Kode format |
| Ctrl + Shift + U | Switching case |
| Ctrl + Shift + I | Definisi Kode Tampilan Menurut konteks saat ini, misalnya: Ketika kursor berhenti pada metode, definisi metode akan ditampilkan dengan cara popupview. |
| Ctrl + klik | Lompat ke kode sumber |
| Shift + shift | Cari semua file |
| Ctrl + e | Buka daftar file yang diakses terbaru |
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.