> Program apa yang bisa saya gunakan untuk melakukan C/C++
> debugging di
> GNU/Linux? Ada yang bisa berbagi pengalaman?
Dulu sebelum beralih fokus ke Python/Haskell, saya manfaatkan pustaka Garbage
Collector-nya Hans Boehm. Boehm-GC membebaskan pikiran saya dari manajemen
memori dan berbagai bug terkait pointer, tapi kalau masih ingin manajemen
memori manual ia punya switch untuk mendeteksi memory leak dan invalid pointer
reference, sehingga bisa dipakai sekadar sebagai leak detector. Pustaka ini
juga punya struktur data Cord (sejenis String) supaya nggak perlu keseringan
pakai char* yang riskan bug pointer.
Saya juga pakai modul unit testing; ada banyak sekali, tapi yang paling sreg
saya pakai adalah CuTest.
> Lalu, ada rekomendasi buku/URL yang bagus untuk belajar
> soal debugging?
Saya dari dulu juga belajar debugging kesana-kemari, pakai debugger macam2.
Kalau terpaksa pakai C/C++, mungkin perlu perbanyak testcase untuk unit
testing, kalau bisa pakai pustaka garbage collector, dan isolasi manipulasi
pointer dalam fungsi tertentu saja.
Bagi saya cara debugging terbaik adalah prototyping di bahasa pemrograman
fungsional dulu, seperti Haskell, OCaml atau Scheme. Bahasa2 seperti itu
memaksa kita untuk mengkonkritkan setiap algoritma dan mekanisme internal dan
struktur komponen program, sehingga *kalau* terjadi bug sudah jelas bahwa
masalahnya bukan pada implementasi yang faulty. Kalau Haskell lebih ketat lagi,
karena dia benar2 strongly-typed, nggak bisa type juggling seperti C/C++, dan
pesan kesalahannya sangat sederhana, nggak membingungkan seperti C++ (apalagi
C++ plus STL. Error message-nya ampun deh). Setelah programnya jadi, kalau mau,
bisa dikonversi balik ke C/C++ dari subset fungsional terkecil sampai jadi
program lengkap.
Kalau nggak suka bahasa fungsional, minimal yang menggunakan manajemen memori
otomatis seperti Python, sehingga pikiran bisa fokus ke eksplorasi pencarian
struktur program yang tepat karena nggak kuatir kena bug2 fatal dengan penyebab
sepele terkait pointer dan memory leak. Ini saya sedang bikin software
pengelola renderfarm untuk animasi 3D, nggak ada referensi jadi harus
eksperimen/eksplorasi/berkali2 rombak strukturnya, tapi nggak masalah karena
baru prototyping di Python ^_^ Benar2 membantu!
I don't mean to be a smartass, you're the college graduate. Just my 2 cents,
hope it helps :)
Adhi Hargo.
--
Berhenti langganan: [email protected]
Arsip dan info: http://linux.or.id/milis