Debugging dengan GDB? Pakai GUI aja males T_T

Debugging adalah kegiatan wajib untuk dilakukan oleh developer software manapun, namun sebagaimana yang saya amati programer sering mengesampingkan kegiatan ini dan hanya menggunakan tool-tool debugging hanya untuk memecahkan masalah yang ditemui saat programing saja (saya juga kalau dah deadline :p), jarang digunakan untuk quality assurance untuk memastikan perilaku programnya terhadap input-input yang salah (atau input yg sengaja salah dalam konteks keamanan). Kenapa bisa begitu? Meme ini dibawah bisa ngasih gambaranšŸ˜€

80ff000de170d180836519b11ef29b7814dc5d5b5b24abed94f5c3828075e811

Generasi saya dahulu debugging sudah menjadi pekerjaan yang mudah karena dibantu oleh interface Borland C yang begitu intuitif dan informatif, dan kebiasaan debugging dengan tool built-in sudah seakan menjadi menu wajib untuk sebuah lingkungan pengembangan perangkat lunak yang baik. Tapi ketika beralih ke Gnu C Compiler dan mulai belajar pemrograman untuk linux interface tadi hilang dan dihadapkan dengan compiler murni yang hanya menginfokan error yang terjadi dan dibaris mana letak salahnya.. mengerikan! Bagi yang sudah biasa dengan GUI pasti mikir 1000kali untuk belajar c dengan gcc!

Oh well, memang saatnya belajar debuging secara old-skool pikir saya.. dan ternyata memang banyak manfaatnya mempelajari debugging secara manual dengan GDB, kita jadi bisa lebih mengerti alur bagaimana sebuah komputer berkerja, karena kita memberikan atensi terhadap detil dalam aplikasi kita dan mungkin kedepannya kita bisa membuat sebuah hack yang menyederhanakan alur logika aplikasi kita sehingga aplikasi nantinya lebih kodenya lebih simple dan elegan serta performanya juga cepat.

Kemampuan debugging ini juga sering dijadikan senjata bagi para peretas untuk mendeteksi sebuah vulnerabilitas dari sebuah aplikasi seperti buffer over flow (BOF) dan dieksploitasi untuk menjalankan kode-kode yang disisipi, bahkan menurut saya kemampuan ini (selain kemampuan programing) termasuk skill utama yang menjadi pembeda antara seorang script kiddies dan hacker sejati.archer

GDB atau The Gnu Debugger sebenarnya adalah tool debugin yang tidak spesifik untuk bahasa C saja, namun juga mendukung bahasa-bahasa lainnya seperti C++, Python, Ada, Objective C, dlsb. Menurut situs resminya GDB secara garis besar mempunyai 4 kemampuan yaitu :

  • Menjalankan program dengan menspesifikasikan apapun yang mungkin dapat mempengaruhi perilaku aplikasi tsb
  • Membuat program berhenti sementaraĀ  pada kondisi yang telah ditentukan (biasanya menggunakan istilah break)
  • Memeriksa apa yang telah terjadi ketika aplikasi tersebut dihentikan sementara (kondisi/isi tiap variabel)
  • Merubah hal yang ada didalam aplikasi sehingga kita bisa bereksperimen dengan dampak dari perbaikan sebuah bug, dan apakah ada dampak lanjutan dari perubahan tersebut.

4 langkah diatas sebenarnya gak jauh beda dengan yang pakai GUI, cuman kalau pakai GUI enaknya tinggal klik pada baris tempat break.. kemudian run.. terus tinggal klik step setiap ingin lihat perubahan variabel, sedang kalau pakai GDB bisa stress kalau gak biasa lihat tulisan.. kaya penggemar komik disuruh baca novel :p

Tulisan ini pengantar dari rencana saya membuat tutorial mengenai dasar-dasar debuging menggunakan GDB ini akan dibagi menjadi beberapa part mengikuti garis besar diatas, dan kalau gak malas 2 hari lagi muncul part 1 nya :p

2 responses to “Debugging dengan GDB? Pakai GUI aja males T_T

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s