تصحيح استخدام الذاكرة الأصلية

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

المطهر العنوان: HWASan / ASan

يستخدم مطورو منصة Android HWAddressSanitizer (HWASan) للعثور على أخطاء الذاكرة في C / C ++.

يمكنك وميض صور HWASan التي تم إنشاؤها مسبقًا على أجهزة Pixel المدعومة من ci.android.com ( تعليمات الإعداد التفصيلية ).

منذ Android 8.0 (Oreo) ، من الممكن أيضًا استخدام ASan لتصحيح أخطاء التطبيقات على أجهزة الإنتاج غير الجذر. يمكنك العثور على التعليمات على ASan wiki .

هيبروفد

يدعم Android 10 heapprofd ، وهو أداة تعريف كومة أخذ العينات منخفضة التكلفة. يتيح لك heapprofd أن تنسب استخدام الذاكرة الأصلية إلى أكوام الاتصال في برنامجك. راجع heapprofd - Android Heap Profiler على موقع توثيق Perfetto للحصول على مزيد من المعلومات.

تصحيح مالوك

راجع Malloc Debug وNative Memory Tracking باستخدام libc Callbacks للحصول على وصف شامل لخيارات التصحيح المتاحة لمشاكل الذاكرة الأصلية.

libmemunreable

libmemunreachable من Android هو كاشف تسرب الذاكرة الأصلي بدون حمل. يستخدم أداة تجميع القمامة غير الدقيقة التي تعمل بالعلامة والمسح لتمرير كل الذاكرة الأصلية ، والإبلاغ عن أي كتل يتعذر الوصول إليها على أنها تسريبات. راجع الوثائق libmemunreachable للحصول على تعليمات الاستخدام.

خطاف مالوك

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

إحصائيات مالوك

يدعم Android mallinfo(3) و malloc_info(3) لـ <malloc.h> . تتوفر وظيفة malloc_info في Android 6.0 (Marshmallow) والإصدارات الأحدث ومخطط XML الخاص به موثق في Bionic's <malloc.h> .

Dalvik Debug Monitor Server

يمكنك أيضًا استخدام Dalvik Debug Monitor Server (DDMS) للحصول على عرض رسومي لإخراج Malloc Debug.

لاستخدام DDMS ، قم أولاً بتشغيل واجهة مستخدم الذاكرة الأصلية الخاصة به:

  1. افتح ~/.android/ddms.cfg
  2. أضف السطر: native=true

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