مصحح أخطاء الذاكرة
مصحح أخطاء الذاكرة هو أداة تُستخدم لاكتشاف مشاكل الذاكرة في البرامج، مثل تسرب الذاكرة وتجاوز سعة المخزن المؤقت . وتنتج هذه المشاكل عن أخطاء برمجية تتعلق بتخصيص وتحرير الذاكرة الديناميكية . قد تحتاج البرامج المكتوبة بلغات برمجة تعتمد على جمع البيانات المهملة ، مثل البرامج المُدارة ، إلى مصححات أخطاء الذاكرة، على سبيل المثال، لاكتشاف تسرب الذاكرة الناتج عن المراجع "الحية" في المجموعات.
ملخص
تعمل أدوات تصحيح أخطاء الذاكرة من خلال مراقبة الوصول إلى الذاكرة، وتخصيصها، وتحريرها. تتطلب العديد من هذه الأدوات إعادة تجميع التطبيقات باستخدام مكتبات خاصة لتخصيص الذاكرة الديناميكي، والتي تتوافق واجهات برمجة التطبيقات الخاصة بها في الغالب مع مكتبات تخصيص الذاكرة الديناميكي التقليدية، أو استخدام الربط الديناميكي. يُعدّ Electric Fence أحد هذه الأدوات، حيث يقوم بتصحيح أخطاء تخصيص الذاكرة باستخدام malloc . بينما تعمل بعض أدوات تصحيح أخطاء الذاكرة الأخرى (مثل Valgrind ) عن طريق تشغيل الملف التنفيذي في بيئة شبيهة بالآلة الافتراضية، ومراقبة الوصول إلى الذاكرة، وتخصيصها، وتحريرها، مما يُغني عن إعادة التجميع باستخدام مكتبات خاصة لتخصيص الذاكرة.
قد يستغرق اكتشاف مشكلات الذاكرة، مثل التسريبات، وقتًا طويلاً للغاية، إذ قد لا تظهر إلا في ظروف معينة. استخدام أداة للكشف عن إساءة استخدام الذاكرة يجعل العملية أسرع وأسهل بكثير. [ 1 ]
بما أن الاستخدام العالي غير الطبيعي للذاكرة يمكن أن يكون عاملاً مساهماً في تقادم البرامج ، فإن أدوات تصحيح أخطاء الذاكرة يمكن أن تساعد المبرمجين على تجنب حالات الشذوذ البرمجية التي من شأنها أن تستنزف ذاكرة نظام الكمبيوتر، وبالتالي ضمان موثوقية عالية للبرنامج حتى لفترات التشغيل الطويلة .
مقارنة بالمحلل الثابت
يمكن لبعض أدوات التحليل الثابت أن تساعد أيضًا في اكتشاف أخطاء الذاكرة. تعمل أدوات تصحيح أخطاء الذاكرة كجزء من التطبيق أثناء تشغيله، بينما يتم إجراء تحليل الكود الثابت من خلال تحليل الكود دون تنفيذه. عادةً ما تكشف هذه التقنيات المختلفة عن حالات مختلفة من المشاكل، واستخدامها معًا يُحقق أفضل النتائج. [ 2 ]
قائمة أدوات تصحيح أخطاء الذاكرة
هذه قائمة بأدوات مفيدة لتصحيح أخطاء الذاكرة. يمكن استخدام أداة تحليل الأداء بالتزامن مع أداة تصحيح أخطاء الذاكرة.
| اسم | نظام التشغيل | رخصة | اللغات | تقنية |
|---|---|---|---|---|
| معقم العناوين | لينكس، ماك أو إس | مجاني/مفتوح المصدر (LLVM) | سي، سي++، رست | أدوات وقت الترجمة (متوفرة في Clang و GCC ) ومكتبة متخصصة |
| ألينيا دي دي تي | لينكس، بلو جين | ملكية تجارية | لغات البرمجة C و C++ و F90. وكذلك للبرامج المتوازية على الحواسيب العملاقة. | وقت التشغيل - من خلال الربط الديناميكي |
| وقت | ويندوز (فيجوال ستوديو، إمباركاديرو IDEs) | ملكية تجارية | .NET، C++، Java، Silverlight، JScript، VBScript [ 3 ] | وقت التشغيل |
| بي تشيك | سولاريس | |||
| مدقق الحدود | ويندوز (فيجوال ستوديو) | ملكية تجارية | لغة سي++ | اعتراضات وقت التشغيل أو وقت الترجمة |
| دايكون | يونكس، ويندوز، ماك أو إس إكس [ 4 ] | [ 5 ] مجاني/مفتوح المصدر | جافا، سي/سي++، بيرل، وإيفل [ 4 ] | الكشف الديناميكي الثابت في وقت التشغيل |
| Debug_new | (تقنية عامة) | (تقنية عامة) | لغة سي++ | تجاوز وقت الترجمة |
| ديليكر | ويندوز (مستقل، وملحقات لبرامج Visual Studio وRAD Studio وQt Creator وCLion) | ملكية تجارية | C++، .Net، دلفي | اعتراضات وقت التشغيل |
| dmalloc | أي | مجاني/مفتوح المصدر ( رخصة ISC ) | ج | تجاوز وقت الترجمة |
| دينامو ريو § دكتور ميموري | أندرويد، لينكس، ويندوز | مجاني/مفتوح المصدر (LGPL وBSD) | أي | اعتراضات وقت التشغيل |
| السياج الكهربائي | يونكس | رخصة جنو العمومية العامة | لغة C، لغة C++ | تجاوز وقت الترجمة |
| FASTMM4 | ويندوز | رخصة جنو العمومية العامة | دلفي | تجاوز وقت الترجمة |
| برنامج IBM Rational Purify | يونكس، ويندوز | ملكية تجارية | سي++، جافا، دوت نت | وقت التشغيل |
| Insure++ | ويندوز (إضافة فيجوال ستوديو)، يونكس | ملكية تجارية | لغة C، لغة C++ | أدوات قياس شفرة المصدر |
| إنتل إنسبكتور | ويندوز (فيجوال ستوديو)، لينكس | ملكية تجارية | لغات البرمجة C و C++ و Fortran | وقت التشغيل |
| libcwd | لينكس (gcc) | مجاني/مفتوح المصدر | لغة C، لغة C++ | تجاوز وقت الترجمة |
| ليبوميم | سولاريس | مرفق مع نظام التشغيل سولاريس | تجاوز وقت الربط | |
| ميمواتش | أي (مكتبة برمجة) | مجاني/مفتوح المصدر | ج | تجاوز وقت الترجمة |
| mtrace | متنوع | رخصة جنو العمومية العامة المحدودة | مكتبة GNU C | مدمج، مخرجات الوصول |
| MTuner | متنوع | حر | لغة C، لغة C++ | اعتراضات وقت التشغيل، تجاوز وقت الربط (MSVC، Clang، وGCC)، اكتشاف التسريبات |
| Oracle Solaris Studio (المعروف سابقًا باسم Sun Studio Runtime Checking) | لينكس، سولاريس | برامج مجانية مملوكة | لغات البرمجة C و C++ و Fortran | |
| أوليفر (APT الدولية) | MVS، MVS/EXA، DOS/VSE | برامج احتكارية | لغة التجميع من IBM | اعتراضات وقت التشغيل، المشرف - النوع 2 |
| توتال فيو | يونكس، ماك أو إس إكس | ملكية تجارية | لغات البرمجة C و C++ و Fortran | وقت التشغيل |
| فالغريند § ميم تشيك | لينكس، فري بي إس دي، سولاريس/إيلوموس، ماك أو إس، أندرويد | رخصة جنو العمومية العامة | أي | اعتراضات وقت التشغيل |
| WinDbg | ويندوز | برامج مجانية مملوكة | C، C++، .NET، بايثون | وقت التشغيل |
انظر أيضاً
مراجع
- مايكل سي. داكونتا: مؤشرات لغة C++ وإدارة الذاكرة الديناميكية ، جون وايلي وأولاده، رقم ISBN 0-471-04998-0
- أندرو كونيغ : الفخاخ والمزالق ، أديسون-ويسلي، رقم ISBN 0-201-17928-8
- ↑ "مراجعة: 5 أدوات تصحيح أخطاء الذاكرة لبرمجة لينكس" . 20 نوفمبر 2015. تم الاطلاع عليه في 24 أغسطس 2017 .
- ↑ "التحليل الديناميكي مقابل التحليل الثابت" . تم الاطلاع عليه بتاريخ 24 أغسطس 2017 .
- ↑ "الرمز المُدار - AQtime Pro | SmartBear" . مؤرشف من الأصل بتاريخ 19-09-2013 . تم الاطلاع عليه بتاريخ 14-01-2013 .
- 1 2 "دليل مستخدم كاشف دايكون الثابت" .
- ↑ "دليل مستخدم كاشف دايكون الثابت" .
روابط خارجية
- " صيد حشرات الذاكرة " بقلم إيفان سكايت يورجنسن
- " مقارنة بين برامج فحص الذاكرة المجانية " بقلم جان فيليب مارتن
- برنامج إدارة الذاكرة
- تصحيح الأخطاء
