سؤال

أحد المنتجات التي نطورها هي تطبيق هاتف لهواتف نوكيا التي تم إجراؤها في C ++ و Symbian، بدأنا في الحصول على "عشوائي" تعطل لفترة من الوقت مع مستخدم 44 من الذعر.

أنا جديد جدا في بيئة سيمبيان حتى أبحث عن أدوات وتوصيات للمساعدة في العثور على جذر هذا الخطأ.

هل هناك ما يعادل "تتبع المكدس" الذي يمكنني الحصول عليه؟ هل هناك رمز جذاب من الذعر الذي يمكن أن يعطيني بعض البصيرة فيه؟

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

المحلول

من http://www.symbian.com/developer/techlib/v9.1docs/doc_source/areference/n10352/userpanics.html.:

This panic is raised by the Free() and FreeZ() member functions of an RHeap.
It is caused when the cell being freed overlaps the next cell on the free
list (i.e. the first cell on the free list with an address higher than the
one being freed).

يعني ذلك، استدعاءك حذف / حذف [] (أي بدوره سيتصل مجانا () / Freez () مع مؤشر غير صالح. عند تصحيح الأخطاء تحت كربيد يجب أن ينكسر Drobuger على الخط الذي يسبب الذعر ويجب أن تكون قادرا على رؤية الحذف غير الصوتي.

نصائح أخرى

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

تفهمي الغامض هو أن المستخدم 44 والمستخدم 45 يرفع كلاهما يتعلق بمشاكل كومة. المشكلة الأكثر شيوعا ستكون حذف مزدوج. هل أنت فارغ مؤشراتك بعد حذفها؟ هل تتحقق ضد فارغة قبل حذفها؟ أين يمكن أن تكون مزدوجة حذف شيء ما؟

من المحتمل أن يستخدم الخيار الأسهل لتصحيح الأخطاء 2.0 كربيد 2.0، حيث يتم عرضه بالكامل ومتاح بحرية.

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