سؤال

لقد كنت مؤخرا تعبث مع SFML., ، مكتبة الوسائط المتعددة. أستخدم C # بطبيعة الحال، ذهبت لملزمة .NET، والتي يمكنك إحضارها من SVN في أحدث إصدار 2.0. بعد فترة من العبث حولها، لاحظت أن طلبي سيعطل في بعض الأحيان عند استخدام كائن النص، وكائن يستخدم لرسم خطوط الملمس.

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

لقد قدمت مثالا ل Laurent، Dev of SFML، لكنه لا يزال بإمكانه إعادة إنتاج الأخطاء. التفكير في ذلك قد يكون نظام التشغيل المرتبط به، لقد أرسلت الملف للجميع، واستفسر عن أنظمة التشغيل الخاصة بهم. فيما يلي نتائجي:

http://spreadsheets.google.com/ccc؟key=0ahchhejllgevudg1tti1mtkfxeflhyvrisxhjbfbdumc&hl=en

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

لذلك سؤالي الفعلي هو، ما هي العوامل الأخرى ولكن نظام التشغيل أو الهندسة المعمارية يمكن أن تؤثر على الأخطاء مثل هذا، والتي تظهر فقط على بعض الأنظمة؟

للرجوع اليها، هنا هو الملف الذي أرسلته أصدقائي:http://dl.dropbox.com/um/3310651/memleak2.rar.

وقشارات من التنميط فعلت:http://dl.dropbox.com/u/3310651/sfml_memleak.png.

شكرا!

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

المحلول 2

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

نصائح أخرى

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

إذا كان لديك فقط إصدار Express من Visual Studio، فيمكنك استخدام SOS من مصحح الأخطاء Windbg وهو جزء من أدوات تصحيح الأخطاء لنظام التشغيل Windows. وبعد نظرة عامة جيدة أخرى تم تصميمها لاستخدام SOS مع WINDBG يمكن العثور عليها هنا.

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