وهي تعمل حاليا لينكس فقط. يتم تحريرها DBGMEM تحت شروط رخصة جنو العمومية الصغرى
أداة تساعدك على إيجاد المشاكل مثل
على & nbsp؛ 1. تسرب الذاكرة
على & nbsp؛ 2. الفساد كومة الذاكرة
على & nbsp؛ 3. سوء استخدام، حجة غير قانونية إلى وظائف المكتبة القياسية المحددة.
على & nbsp؛ 4. كومة الفساد
على & nbsp؛ 5. استخدام ذاكرة الكومة سراحهم أو برنامج الأمم المتحدة للتهيئة.
على & nbsp؛ 6. يسمح لك لتمديد الأداة، تحقق من الحجج API إضافية ل
الأداة يتجاوز ظائف تخصيص الذاكرة سي العمومية والذاكرة وظائف معالجة سلسلة من أجل إضافة معالمه.
DBGMEM لا يتطلب أية تغييرات على البرنامج، على الرغم من أنك قد ترغب في تغيير البرنامج من أجل استخدام بعض الميزات المتقدمة.
DBGMEM هو المصحح ذاكرة مفتوحة المصدر لC و C ++ البرامج ويعمل تحت نظام التشغيل لينكس، وأفرج عنه بموجب رخصة جنو العمومية الصغرى. DBGMEM يضيف عمليات التصحيح إلى أجزاء من من سي العمومية المكتبة القياسية. يتم تنفيذ ذلك عن المكتبات المشتركة التي يتم تحميلها في مساحة العنوان من عملية تصحيحه.
أدوات
DBGMEM لديها العديد من أدوات التصحيح الذاكرة، ويمكن تحميل كل في البرنامج تصحيحه. أداة بسيطة بتتبع جميع الكتل الذاكرة المخصصة، وتضيف المعلومات مسك الدفاتر، مثل مكدس في الوقت الذي تم تخصيص الكتلة، إلى رأس الساحة التي تسبق كتلة الذاكرة المخصصة. وتضيف أيضا كلمة الحرس قبل وبعد كتلة المخصصة. يتم استخدام أفضل أداة بسيطة للكشف عن مشاكل تسرب الذاكرة. كما رأس الساحة يمكن الحصول على تلف من قبل البرنامج الذي يتم تصحيحه. والتحقق من أخذ يبقي على جميع المعلومات حفظ كتاب إيقاف المكدس في ملف الذاكرة المعنونة مجهولا؛ هذا يجعل أداة أكثر قوة على تحمل ذاكرة الكتابة البق. يضيف أداة التحقق أيضا القدرة على النظر بسرعة من المعلومات حول أي كتلة كومة لقيمة المؤشر الواردة في هذا كتلة كومة؛ أداة فحص يضيف التحقق من المعلمات لسلسلة المشتركة وظائف معالجة الذاكرة، والشيكات لكومة من الممكن تحطيم من قبل هذه الوظائف.
طريقة عملها
يمكنك تشغيل معظم البرامج مع المصحح كما هو؛ الأداة لا يتطلب البرنامج تصحيحه أن تكون مرتبطة مع أي مكتبات محددة؛ الأداة هي مكتبة المشتركة التي يتم تحميلها إلى مساحة عنوان العملية التي يتم فحصها من قبل وسائل تقنية حقن DLL. يتم استخدام ميزة LD_PRELOAD من رابط ديناميكي لتحميل الأدوات المشتركة مكتبة أولا، قبل أن يتم تحميل أي مكتبة أخرى. يتم اعتراض تخصيص الذاكرة وظيفة سلسلة التلاعب، ودعا من المكتبة أداة الأولى؛ وهذا يتيح أداة لإضافة الشيكات لها. أثناء وقت التشغيل من عملية تصحيحه يتم كتابة تقرير الخام التي يتم تجهيزها أيضا بعد انتهاء عملية تصحيحه. ويضيف التقرير تضاف أسماء وظيفة رمزية إلى كومة آثار الواردة في تقرير الخام. يستخدم المصحح GDB لتحويل عناوين رقمية إلى عناوين رمزية خلال مزيد من المعالجة من تقرير الخام
الميزات:.
تسرب الذاكرة. وهذا ينطبق على كل من أداة فحص وأدوات بسيطة. الأداة مسارات كل كتلة كومة المخصصة جنبا إلى جنب مع تتبع المكدس التي اتخذت في الوقت الذي تم تخصيص كتلة. بالإضافة إلى ذلك يتم الاحتفاظ علامة صحيح مع كل تخصيص، ويتتبع هذه القيمة فترة المنطقية / `جيل" الذي يميز الوقت الذي تم تخصيص كتلة. تم إعداد تقرير هذه المعلومات دائما على عملية الخروج، أو عندما يطلب من قبل المستخدم. هذه المعلومات تساعد على إيجاد حالات وأسباب التسرب في الذاكرة.
استخدام ذاكرة الكومة لم يتم تهيئة أو ذاكرة الكومة سراح. وهذا ينطبق على كل من أداة فحص وأدوات بسيطة. أداة تحدد كافة الذاكرة المخصصة حديثا إلى قيمة بايت 0xDD وكل ذاكرة محررة لقيمة بايت 0xEE. استخدام هذه القيم عادة ما يؤدي إلى أخطاء البرنامج، إذا كانت هذه منطقة الذاكرة يحتوي على المؤشر، ثم dereferencing من المؤشر مع قيمة 0xDDDDDDDD سيؤدي إلى وقوع الحادث.
الفساد ذاكرة الكومة. وهذا ينطبق على كل من أداة فحص وأدوات بسيطة. الشيكات أداة للذاكرة الكتابة ويتعهد بوضع بادئة الذاكرة واللاحقة على كل كتلة كومة؛ إذا تم تغيير قيمة لاحقة ثم الكتابة كومة / تم الكشف عن الاكتتاب.
وهذا ينطبق على 'أداة فحص' '' '' فقط؛ سوء استخدام وظائف معالجة سلسلة من سي العمومية ونسخ الذاكرة / وظائف الخطوة من سي العمومية. كومة الفساد من خلال تلك الوظائف فحص أداة يحصل على أول تمريرة على وظائف المكتبة القياسية المشتركة، ويتم التحقق من أن وظيفة لن الكتابة كتلة كومة الحجة القائمة؛ يتم إيداعه أيضا أن كومة من موضوع الدعوة لن يكون معطوبا.
ما هو الجديد في هذا الإصدار:
جعل يحصل الآن CFLAGS متغير البيئة
بناء dbgmem مكتبة مع خيار -ldl
يتم وضع المكتبة المشتركة الآن في ليب / $ (uname -r) الدليل، كما هو تزوج سي العمومية إلى إصدار النواة.
تجميع الإصلاح على بعض الأنظمة (خطوة تكوين)
إضافة خيار لتشغيل البرنامج النصي (-m - توليد كومة يتتبع فقط لبعض الأجيال)
ما هو الجديد في الإصدار 1.9.1:
جعل النصي تحديثها، فإنه يحاول الآن للكشف عن إعدادات بنيت المطلوبة؛ ما زلت لا الآن كيفية القيام automake على الرغم من
خطأ الترجمة في وضع C لدول مجلس التعاون الخليجي 2.9.6 الثابتة. دول مجلس التعاون الخليجي لا تزال تعطل مع خطأ داخلي في C ++ وضع بنيت
-g خيار المضافة (تعطيل الاختيار لالاقتران من malloc / جديد / جديد [] وخالية / حذف / حذف [] في C ++ واسطة)
ما هو الجديد في الإصدار 1.7:
الخيار -F اتبع شوكة وإإكسك المكالمات وأضاف (كما هو الحال في مفترق الطرق / إإكسك)
يطبع الآن من سطر الأوامر لعملية تصحيحه في رأس ملف التقرير.
يتضمن خريطة اسم الملف الآن PID.
حذف الملفات تقرير الخام بشكل افتراضي؛ هناك عدد كبير جدا منهم.
جميع استخدامات sprintf تغيرت إلى snprintf
لم يتم العثور على التعليقات