> 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: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis

Kirim email ke