ما هو مفهوم الdebugging

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