Kami memberikan banyak perhatian pada alat pengembangan: kami berpartisipasi dalam perdebatan sengit tentang editor (Vim atau Emacs?), Kami menghabiskan banyak waktu menyesuaikan IDE sesuai selera kami, dan dengan hati-hati memilih bahasa pemrograman dan pustaka yang semakin baik dan nyaman setiap hari. Namun, satu kategori dapat dibedakan di sini, yang karena alasan tertentu tetap dilupakan: debugger tidak banyak berubah selama dekade terakhir, meskipun mereka masih menjadi salah satu alat dasar untuk menangkap kesalahan dan menavigasi kode.
Gambar: Timothy Dykes @timothycdykes, unsplash.com
Lebih sering daripada tidak, kami lebih suka menambahkan beberapa dengan cepat printdaripada menempatkan breakpoint di tempat yang tepat dan berjalan melewatinya dengan debugger - dan pertanyaan "mengapa?" tidak berhenti menghibur saya - lagipula, log dan prints memberikan informasi terbatas dan tidak mengizinkan interaksi interaktif dengan proses yang sedang berjalan (dan debugger bahkan dapat bekerja dengan proses "mati"!).
Salah satu alasan utama yang saya lihat adalah kurangnya kemajuan yang signifikan dalam pengembangan debugger.
GDB , . , 4K, - , . , IDE VS Code ( , JavaScript), - - .
. Rust, β , , (, Make 1976 ).
: Rust "" β , , . " ", , . , , β , .
. GDB LLDB, : (Go Rust) , C C++. β , β , . β Go Java LLDB.
, ? , Rust! , . Delve , ( β Go) , x86-64 Windows/Linux/macOS.
, , , . : - , ( - ). REPL Jupyter ( , , ).
, , , , , .
, Headcrab, . : , , . , β - .
Jika Anda tertarik untuk berpartisipasi dalam pengembangan, kami akan dengan senang hati mendukung Anda, meskipun pemrograman sistem masih baru bagi Anda. Anda juga dapat membantu jika Anda berbagi pengalaman debug: masalah apa yang Anda hadapi, alat apa yang Anda gunakan, dan apa yang ingin Anda lihat di debugger baru?
Terima kasih telah membaca teks ini.