# منقح

في البرمجة، المنقح (بالإنجليزية: Debugger)‏ ويسمى أيضًا مُشخِّص الأخطاء أو مُتتبع الأخطاء، هو أداة لتشخيص، إيجاد، وإزالة الأخطاء من أنظمة الحواسيب؛ خصوصًا من البرمجيات.

## أدوار المنقح

* توجيه عمل البرنامج عبر معالجة أوامر البرنامج خطوة بخطوة.

## استعمال

يتم تشغيل البرنامج المراد تصحيحه من خلال المنقح ويعمل بشكل طبيعي. يقدم المنقح للمبرمج القدرة على مراقبة البرنامج والتحكم في تنفيذه، ويسمح له كذلك بمراقبته ووقف تنفيذه وحتى تغييره وذلك من خلال مجموعة من الوسائل المتاحة له. على سبيل المثال، يمكن ملاحظة مكدس التنفيذ ومحتوى المتغيرات في الذاكرة، ويمكن تغيير قيمة المتغيرات لتغيير التحكم في التدفق من البرنامج، لتحديد سبب الفشل على سبيل المثال.

## التفنية

تختلف الأدوات التي يوفرها المنقح باختلاف لغة البرمجة (التي يستعملها المبرمج لكتابة الكود الذي يتم تصحيحه) التي صمم من أجلها.
مع ذلك، يبقى هناك مجموعة من الأدوات التي يوفرها غالبية المنقحين.

### أدوات لتوقيف تنفيذ البرنامج

* أمر التوقف اليدوي : المبرمج يمكن أن يقرر إيقاف التنفيذ في أي وقت.
* نقطة التوقف: توضع في نقطة محددة في البرنامج (عادة في شفرة المصدر " Code source" )، يشيرإلى المنقح بإيقاف التنفيذ عندما يصل إلى تلك النقطة.
* نقطة توقف مشروطة : على غرار نقطة التوقف، ولكن مع شرط إضافي ( مثل عدد المرات التي مر فيها البرنامج من هاته النقطة).
* نقطة الملاحظة : تستخدم لوقف تنفيذ البرنامج على شرط تبدل المتغير.

### أدوات لتسيير تنفيذ البرنامج

* خطوة بخطوة تنفيذ البرنامج تعليمة بتعليمة (instrcution).
* إعادة تشغيل الوظيفة الحالية (drop frame) : إلغاء التنفيذ الحالي للوظيفة الحالية وتنفيذها من جديد.
* فلاش باك: الرجوع إلى التعليمات السابقة، وإيجاد الحالة سابقة (ميزة نادرة).

### أدوات لمراقبة حالة البرنامج

* مراقبة متغير
* مراقبة منطقة الذاكرة
* مراقبة سجل للمعالجات الدقيقة
* مراقبة مكدس الاستدعاء ات (المتتبع الخلفي)
* مراقبة شفرة المصدر مع النقطة الحالية للتنفيذ
* مراقبة الشفرة المجمعة (باستثناء اللغة المؤولة) مع النقطة الحالية التنفيذ
* تعقب: تمكن من ملاحظة المعلومات حاليا، دون توقف تنفيذ البرنامج
بالإضافة إلى ذلك، يسمح لك المنقح عادة بتغيير حالة البرنامج، عند إيقاف تنفيذه:
* تعديل السجل
* تعديل المتغير
* تعديل مساحة الذاكرة

### تصحيح عن بعد

التصحيح عن بعد هو تصحيح البرامج عن بعد، غالبا من أجل هدف مختلف عن البيئة التطويرية.

### منقح نواة

تصحيح نواة أو مسير نظام التشغيل (OS) يتطلب أدوات لهذه المهمة الحساسة. على وجه الخصوص، عادة ما يتم القيام بتصحيح الأخطاء عن بعد عبر ارتباط تسلسلي (ولكن في بعض الأحيان إيثرنت Ethernet) لأنه إذا ما سيطر المنقح كليا على النواة، يصبح الجهاز الهدف غير صالح للاستعمال (يتجمد تماما في كل نقطة توقف).

## مراجع

* ↑ معجم الحاسبات (بالعربية والإنجليزية) (ط. 3). القاهرة: مجمع اللغة العربية بالقاهرة. 2003. ص. 85. ISBN:978-977-01-8550-6. OCLC:784561745. QID:Q113638576.
* ↑ Philip Claßen؛ Undo Software. "Why is reverse debugging rarely used?". Programmers Stack Exchange. Stack Exchange, Inc. مؤرشف من الأصل في 2016-08-06. اطلع عليه بتاريخ 2015-04-12.
* ↑ "IBM Global Solutions Directory - z/XDC Extended Debugging Controller z2.1". مؤرشف من الأصل في 2017-02-02. اطلع عليه بتاريخ 2015-05-29.
* ↑ "IBM Debug Tool for z/OS, V13.1" (PDF). Puiblic.dhe.ibm.com. مؤرشف من الأصل (PDF) في 2020-03-12. اطلع عليه بتاريخ 2015-05-07.
* بوابة برمجة الحاسوب
* بوابة برمجيات
* بوابة علم الحاسوب
* هذه بذرة مقالة عن الحاسوب أو العاملين في هذا المجال، بحاجة للتوسيع. فضلًا شارك في تحريرها.