مصحح أخطاء الذاكرة

مصحح أخطاء الذاكرة هو أداة تُستخدم لاكتشاف مشاكل الذاكرة في البرامج، مثل تسرب الذاكرة وتجاوز سعة المخزن المؤقت . وتنتج هذه المشاكل عن أخطاء برمجية تتعلق بتخصيص وتحرير الذاكرة الديناميكية . قد تحتاج البرامج المكتوبة بلغات برمجة تعتمد على جمع البيانات المهملة ، مثل البرامج المُدارة ، إلى مصححات أخطاء الذاكرة، على سبيل المثال، لاكتشاف تسرب الذاكرة الناتج عن المراجع "الحية" في المجموعات.

ملخص

تعمل أدوات تصحيح أخطاء الذاكرة من خلال مراقبة الوصول إلى الذاكرة، وتخصيصها، وتحريرها. تتطلب العديد من هذه الأدوات إعادة تجميع التطبيقات باستخدام مكتبات خاصة لتخصيص الذاكرة الديناميكي، والتي تتوافق واجهات برمجة التطبيقات الخاصة بها في الغالب مع مكتبات تخصيص الذاكرة الديناميكي التقليدية، أو استخدام الربط الديناميكي. يُعدّ 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
  1. "مراجعة: 5 أدوات تصحيح أخطاء الذاكرة لبرمجة لينكس" . 20 نوفمبر 2015. تم الاطلاع عليه في 24 أغسطس 2017 .
  2. "التحليل الديناميكي مقابل التحليل الثابت" . تم الاطلاع عليه بتاريخ 24 أغسطس 2017 .
  3. "الرمز المُدار - AQtime Pro | SmartBear" . مؤرشف من الأصل بتاريخ 19-09-2013 . تم الاطلاع عليه بتاريخ 14-01-2013 .
  4. 1 2 "دليل مستخدم كاشف دايكون الثابت" .
  5. "دليل مستخدم كاشف دايكون الثابت" .
  • " صيد حشرات الذاكرة " بقلم إيفان سكايت يورجنسن
  • " مقارنة بين برامج فحص الذاكرة المجانية " بقلم جان فيليب مارتن