العودة إلى الدورة

تقنيات وأدوات تصحيح الأخطاء (نظرة عن GDB)

لغة C: من الصفر إلى الاحتراف - الدليل الشامل للمبتدئين

الدرس 59: تقنيات وأدوات تصحيح الأخطاء

تصحيح الأخطاء (Debugging) هو عملية العثور على الأخطاء (bugs) وإصلاحها في البرمجيات. يمكن لبرامج C أن تعاني من ثلاثة أنواع رئيسية من الأخطاء:

  1. أخطاء بناء الجملة (Syntax Errors): يكتشفها المترجم (مثل نسيان فاصلة منقوطة).
  2. أخطاء الربط (Linker Errors): تحدث عند دمج ملفات الكائنات (مثلاً استدعاء دالة تم التصريح عنها ولكن لم يتم تعريفها أبداً).
  3. أخطاء منطقية/أثناء التشغيل: يعمل البرنامج ولكنه يتصرف بشكل غير صحيح (مثل انتهاك حدود المصفوفة، الحلقات اللانهائية، تسرب الذاكرة). تتطلب هذه الأخطاء مصححاً (debugger).

تقنيات أساسية

  1. جمل الطباعة: أبسط طريقة لتصحيح الأخطاء. أدخل جمل printf() لتتبع قيم المتغيرات وتدفق التنفيذ.
  2. العزل: قم بتحويل أجزاء من الكود لتعليقات لتحديد مكان نشوء الخطأ.
  3. التطوير التدريجي: اكتب واختبر قطعاً صغيرة من الكود بدلاً من كتابة البرنامج بالكامل دفعة واحدة.

استخدام المصحح (GDB: GNU Debugger)

يسمح لك المصحح بتنفيذ برنامجك خطوة بخطوة، وفحص حالات المتغيرات، والتحكم في التدفق.

1. الترجمة مع معلومات التصحيح

لاستخدام GDB، قم بترجمة الكود باستخدام الخيار -g :

bash gcc program.c -o program -g

2. أوامر GDB الأساسية (مفاهيم)

الأمرالوصف
gdb ./programبدء المصحح مع الملف التنفيذي
break mainوضع نقطة توقف عند بداية main
runبدء التنفيذ (يتوقف عند نقطة التوقف)
nextتنفيذ السطر التالي، وتخطي استدعاءات الدوال
stepتنفيذ السطر التالي، والدخول في استدعاءات الدوال
print variableعرض القيمة الحالية لمتغير
continueالاستمرار في التنفيذ حتى نقطة التوقف التالية
quitالخروج من GDB

إتقان استخدام المصحح أمر ضروري للعثور على الأخطاء الصعبة والمتقطعة، خاصة تلك المتعلقة بالمؤشرات والذاكرة.