فشل تنقية Rational في القفز إلى تسرب الذاكرة

StackOverflow https://stackoverflow.com/questions/5509

  •  08-06-2019
  •  | 
  •  

سؤال

لذلك تستخدم شركتي برنامجًا مبهجًا به أخطاء يُدعى Rational Purify (كملحق لبرنامج Microsoft Visual Developer Studio) لإدارة تسرب الذاكرة.تم تصميم البرنامج ليسمح لك بالنقر فوق تسرب للذاكرة بعد مواجهته، ثم الانتقال إلى السطر الذي يحدث فيه التسرب.

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

هل لدى أي شخص لديه خبرة في Purify أي فكرة عن كيفية حل هذه المشكلة أو الحصول على دليل جيد للنظر فيه؟

هل كانت مفيدة؟

المحلول

بشكل عام، لديك خياران، أحدهما يستبعد وحدات DLL من الأجهزة في Purify، وهذا يساعد في بعض الأحيان.الثاني هو الحصول على BoundsChecker، وهذا يقوم بتجميع أدوات الوقت بشكل أبطأ بكثير ولكن مستوى التفاصيل أفضل بكثير.

نستخدم بشكل عام Purify عند تسجيل الوصول، والتحقق من السلامة، وBoundsChecker عندما نعلم بوجود خطأ/تعطل.

يحتوي BoundsChecker على بعض الميزات الرائعة مثل ملفات الأدوات A.cpp & B.cpp فقط، باستثناء الباقي.

انتبه إلى أن هذين التطبيقين لا يعملان على أنظمة تشغيل 64 بت، ولن يتم تثبيت BoundsChecker على نظام تشغيل 64 بت.سيكون الأمر الأكثر إحباطًا إذا قمت بالتبديل إلى تطوير 64 بت الأصلي باستخدام منفذ خلفي 32 بت!

نصائح أخرى

التطهير يشبه السكين السويسري.إذا كنت تعرف كيفية استخدامه، سوف تحصل على بعض النتائج، ليست الأفضل ولكن لا تزال النتائج.إذا لم تقم بذلك، فسوف يتعطل، لأنه مجرد برنامج آخر يعمل على Windows.

في النهاية سوف تحتاج إلى الكثير من الصبر، وإعادة البناء وقليل من الحظ.

يأتي Purify مع برنامج نصي يسمى ScanVSSolutionForPurifyPlus.pl والذي سيضمن أن ملفات مشروعك تحتوي على جميع الإعدادات الصحيحة لكي يعمل Purify بشكل صحيح.إذا لم تقم بتشغيله، جرّبه.

(لقد استخدمت شخصيًا ScanVSSolutionForPurifyPlus.pl على حل كبير، وقد نجح الأمر كالسحر.تحذير واحد:عندما تعطيه اسم الخاص بك .sln الملف، قد تحتاج إلى إعطائه اسم المسار الكامل.)

هل أنت متأكد من أن لديك بناء التصحيح؟أو بالأحرى لديك كافة تمكين PDB؟جرب WindDbg على الملف القابل للتنفيذ وتحقق باستخدام الأمر !lmi مما هو مرئي.

هل تم تجهيز الكود بالكامل بشكل صحيح؟

فكر أيضًا في استخدام شيء آخر مثل كاشف التسرب البصري المجاني أو أداة Microsoft LeakDiag.

لقد استخدمت Purify منذ حوالي 5 سنوات.لقد كان الأمر متقلبًا حقًا في ذلك الوقت.لقد ظلوا يعدون بإصلاح جميع الأخطاء في "الإصدار التالي".لقد تخلينا عنها في النهاية.لا يمكن للمرء إلا أن يتساءل عما إذا كانوا قد استخدموا أدوات ضمان الجودة الخاصة بهم في منتجاتهم.يا السخرية...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top