Why GDB

เนื่องจาก GDB เป็นโปรแกรมที่ทรงพลังในการช่วย debug lowlevel application มาก แต่ในขณะเดียวกัน ก็อาจจะดูเข้าถึงยาก ซึ่งเห็นได้ว่ารุ่นน้องๆก็ยังกลัวที่จะใช้ GDB กันอยู่ ยังคงใช้วิธี printf + recompile ในการ debug อยู่ ก็เลยเขียน tutorial นี้ โดยมี program ตัวอย่างให้พร้อม เพื่อให้เห็นว่า GDB นั้นมัน powerful ขนาดไหน ใช้ทำอะไรได้บ้าง โดยไล่ไปทีละ command ให้ง่ายๆ เบื้องต้นอย่างน้อผู้อ่านจะได้ทำการบ้านภาษา c ได้ง่ายขึ้น

เลยเขียนบทความเป็นภาษาไทย พยายามให้ simple (พยายามแล้ว) และทำให้ดูง่ายด้วย learning by example ตามที่หลายคนชื่นชอบกัน

แต่หวังว่าบทความนี้จะเป็นตัวริเริ่มให้ผู้อ่านหลายคนนำไปใช้ต่อยอด ใช้ในการพัฒนา program system ที่ low level เช่น browser, OS, robot, nodejs/python core, game ต่างๆต่อไปได้

นอกจาก GDB (ซึ่งคู่กับ GCC) ก็ยังมี LLDB (ซึ่งคู่กับ LLVM) อยู่ครับ GDB นั้นถูกมองว่าเสถียรกว่า(?) ส่วน LLDB นี้ถูก builtin เข้าไปใน XCode ของ Apple เรียบร้อย ดังนั้นเวลาใช้งาน XCode เนี่ย ต้องเข้าใจว่าเขาใช้ LLDB อยู่ syntax จึงต่างจาก GDB แต่ในเรื่องความสามารถต่างๆที่จะแสดงให้ดูในบทความนี้ ถือว่าไม่ต่างกันมากครับ อยากใช้อันไหนก็ search หา command แล้วใช้ได้เลย ถ้าผู้อ่านเคยใช้ GUI ของ debugger บน XCode แล้วมาลองใช้ commandline จะพอว่ามีลูกเล่นและทำอะไรได้มากกว่ามาก

Last updated