إيجاد GDI/المستخدم استخدام الموارد من تفريغ تعطل

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

  •  01-07-2019
  •  | 
  •  

سؤال

لدي تفريغ تعطل تطبيق المفترض أن تسرب GDI.التطبيق يعمل على XP و ليس لدي أي مشاكل التحميل في WinDbg أن ننظر في الأمر.سابقا يجب استخدام Gdikdx.dll تمديد أن ننظر إلى Gdi المعلومات ولكن هذا التمديد غير معتمد على XP أو Vista.

هل لديها أي مؤشرات على العثور على كائن GDI الاستخدام في WinDbg.

بدلا من ذلك, لدي الوصول إلى فشل البرنامج (و اختبار الضغط جناح) لذا يمكن أن تتكاثر على نظام التشغيل إذا كنت تعرف أي 'يعيش' أدوات التصحيح لـ XP و Vista (أو نظام التشغيل Windows 2000 على الرغم من أن هذا ليس هدفنا).

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

المحلول

كان هناك MSDN مجلة المادة من عدة سنوات التي تحدثت عن GDI التسريبات.هذا يشير إلى عدة أماكن مختلفة مع معلومات جيدة.

في WinDbg ، يمكنك أيضا محاولة !poolused الأمر لبعض المعلومات.

إيجاد الموارد التسريبات من تفريغ التعطل (بعد الوفاة) يمكن أن يكون من الصعب-إذا كان دائما في نفس المكان ، باستخدام نفس المتغير الذي تسرب الذاكرة, و كنت محظوظا يمكنك رؤية مكان آخر أنه سوف يتم تسريبها.... الخفإنه من المحتمل أن يكون أسهل بكثير مع برنامج تشغيل المصحح.

يمكنك أيضا محاولة استخدام مايكروسوفت الطرق الالتفافية, ولكن الرخصة لا يعمل دائما.كما انها قليلا أكثر الغازية المتقدمة.

نصائح أخرى

قضيت الأسبوع الماضي العمل على GDI تسرب الباحث أداة.ونحن أيضا إجراء اختبار الإجهاد العادية ولم استمرت لفترة أطول من يوم واحد يستحق w/o التوقف بسبب المستخدم/gdi كائن التعامل مع الاستهلاك المفرط.

محاولاتي كانت جدا ناجحة بقدر ما استطيع ان اقول.بالطبع, لقد قضيت بعض الوقت قبل البحث عن بديل و أسرع حل.ومن الجدير بالذكر كان لدي بعض السابقة شبه تجربة الحظ مع GDILeaks أداة من msdn المادة المذكورة أعلاه.ناهيك عن أن علي حل بعض المشاكل قبل أن نضعه في هذا الوقت لم تعطيني ماذا وكيف كنت أرغب في ذلك.الجانب السلبي من نهجها هو الوزن الثقيل المصحح واجهة (أنه يبطئ بحث الهدف من حيث الحجم التي وجدت غير مقبول).الجانب السلبي الآخر هو أنه لا تعمل في كل وقت - في بعض أشواط أنا ببساطة لا يمكن الحصول على تقرير/حساب أي شيء!تعقيدها (استنادا الى كمية من التعليمات البرمجية) كان آخر تخيف بعيدا عامل.أنا لست مروحة كبيرة من واجهات ، كما هو إيماني بأني أكثر إنتاجية مع أي ويندوز على الإطلاق ؛ o).كما أنني وجدت أنه من الصعب أن تجعل العثور على استخدام الرموز.

أكثر من أداة واحدة اعتدت من قبل الإعداد لكتابة بلدي ، leakbrowser.

على أي حال, أنا في النهاية استقر على نهج تكرارية إلى تحقيق الأهداف التالية:

  • الأداء طفيفة العقوبات
  • تنفيذ البساطة
  • غير الغازية (التي تستخدم منتجات متعددة)
  • والاعتماد على قدر متاح ممكن

أنا استخدم الطرق الالتفافية (غير التجاري) للحصول على الوظائف الأساسية (وهو injectible DLL).وضع سكريبت لاستخدام رمز جيل التلقائي (15K النصي gen 100K البرمجية المصدر - لا رمز هذا يدويا و لا ج المعالج المشاركة!) بالإضافة إلى windbg امتداد تحليل البيانات لقطة/مهرجان دبي السينمائي الدولي الدعم.

إخبار قصة قصيرة طويلة - بعد أن تم الانتهاء من المسألة كانت من بضع ساعات إلى جمع المعلومات خلال آخر اختبار الإجهاد و ساعة أخرى إلى تحليل وإصلاح التسريبات.

سأكون أكثر من سعيدة أن حصة بلدي النتائج.

P. S.بعض الوقت هل تنفق على محاولة تحسين على الأعمال السابقة.كانت نيتي التقليل من ايجابيات كاذبة (لقد رأيت فقط عن الكثير من تلك في حين النامية) ، لذلك سوف تحقق أيضا تخصيص/الإفراج عن الاتساق وكذلك تجنب الأخذ بعين الاعتبار المخصصات التي لم المسربة.

تحرير:العثور على أداة هنا

لقد خلق Windbg النصي على ذلك.أنظر الجواب

الأمر للحصول على GDI معالجة عدد من تفريغ تعطل

لتتبع تخصيص كومة يمكن تعيين درجة البكالوريوس (مع كسر الحصول على) نقطة في الماضي الماضي تخصيص GDICell كائن إلى كسر فقط في نقطة عند آخر GDI تخصيص يحدث.التي يمكن أن تكون معقدة بعض الشيء بسبب تغير العنوان ولكن يمكن أن يكون بما فيه الكفاية للعثور على أي تسرب.

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