يستخدم مصطلح الdebugging في عالم البرمجة و تكنولوجيا المعلومات و يشير إلى علاج الأخطاء البرمجية أو تصحيح الأخطاء و تشخيصها و ضبطها في كود البرنامج الذي يمكن أن يتسبب في تصرفه بشكل غير متوقع أو تعطله، و هو عملية منهجية من أجل إيجاد و تقليل عدد الخطأ البرمجي او العيوب في برامج الحاسوب وبالتالي جعلها تعمل بالطريقة المتوقعة منها ، حيث يعود إلى لواء البحرية غريس هوبر و هي رائدة في علم الحاسوب حيث قاد عملها إلى تطوير لغة COBOL و هي واحدة من أقدم لغات البرمجة.
تشمل هذه العملية اي عملية تصحيح الخطأ عدة جوانب منها :
- تصحيح الأخطاء التفاعلي.
- التحكم في التدفق.
- اختبار الترابط.
- ملفات تسجيل البيانات.
- المراقبة ( التطبيق و النظام ).
- تحليل البرنامج.
- طبع محتوى الذاكرة.
- مراقبة العمليات الاحصائية.
- تكتيكات التصميم الخاص من أجل تحسن الاكتشاف مع تبسيط التغييرات.
ما مصدر كلمة debug ومن أين جاءت ؟
في الماضي كان يتم تخزين المعلومات الهامة على شكل شيفرة و يتم تخزينها على أسطوانة، وهذه الشيفرة يتم تمثيلها على شكل ثقوب على سطح الاسطوانة و هذه الاسطوانة مثبتة على ماكنة يسهل التحكم بها، لكن أحياناً ينتج أخطاء عندما يتم قراءة الثقوب التي تمثل الشيفرة، لذا تم اكتشاف سبب الأخطاء في القراءة، و يرجع السبب لوجود حشرات تعمل على إغلاق الثقوب مما يؤدي إلى عدم إخراج المعلومة بشكل صحيح، فتم بذلك توكيل شخص بعملية إزالة الحشرات من الثقوب بعملية كانت تعرف " debugging " أي إزالة الحشرات، ثم انتقلت هذه الفكرة إلى جميع لغات البرمجة الحديثة للتمكن من معرفة موقع الخطأ في الكود.
تتم عملية التصحيح كالتالي :
- إعادة إنتاج المشكلة.
- وصف الخطأ، يحاول الحصول على اكبر قدر من المدخلات من المستخدم للحصول على السبب الدقيق.
- التقاط لقطة البرنامج عند ظهور الخطأ، و يحاول الحصول على جميع القيم المتغير و حالات البرنامج في ذلك الوقت.
- تحليل اللقطة بناءاً على الحالة والعل. وبناءاً على ذلك يحاول العثور على سبب الخطأ.
- إصلاح الخطأ الموجود والتحقيق أيضا من عدم حدوث اي خطأ جديد.
أمثلة على كتب مفيدة بهذا الموضوع
- Debugging with GDB.
- advanced Apple debugging and reverse engineering.
- WPF debugging and performance.