آدرس ضد عفونی کننده: HWASan/ASan
توسعه دهندگان پلتفرم اندروید از HWAddressSanitizer (HWASan) برای یافتن اشکالات حافظه در C/C++ استفاده می کنند.
میتوانید تصاویر HWASan از پیش ساخته شده را از ci.android.com به دستگاههای پیکسل پشتیبانیشده فلاش کنید ( دستورالعملهای دقیق راهاندازی ).
از اندروید 8.0 (اوریو) نیز میتوان از ASan برای اشکالزدایی برنامهها در دستگاههای تولیدی روت نشده استفاده کرد. می توانید دستورالعمل ها را در ویکی ASan بیابید .هیپروفد
اندروید 10 از heapprofd پشتیبانی میکند، یک پروفایلگر هیپ نمونهبرداری با سربار پایین. heapprofd به شما امکان می دهد استفاده از حافظه بومی را به callstacks در برنامه خود نسبت دهید. برای اطلاعات بیشتر به heapprofd - Android Heap Profiler در سایت اسناد Perfetto مراجعه کنید.
اشکال زدایی Malloc
برای توضیح کامل گزینه های اشکال زدایی موجود برای مشکلات حافظه بومی، به Malloc Debug وNative Memory Tracking با استفاده از libc Callbacks مراجعه کنید.
libmemun قابل دسترس
libmemunreachable اندروید یک آشکارساز نشت حافظه بومی با سربار صفر است. این برنامه از یک پاس جمعآوری زباله علامتگذاری و جارو کردن نادقیق روی تمام حافظههای اصلی استفاده میکند و هر بلوک غیرقابل دسترسی را به عنوان نشت گزارش میدهد. برای دستورالعمل های استفاده به مستندات قابل دسترس libmemun مراجعه کنید.
قلاب مالوک
اگر میخواهید ابزارهای خود را بسازید، libc اندروید از رهگیری همه تماسهای تخصیص/رایگانی که در طول اجرای برنامه اتفاق میافتد نیز پشتیبانی میکند. برای دستورالعملهای استفاده به مستندات malloc_hooks مراجعه کنید.
آمار Malloc
Android از mallinfo(3)
و malloc_info(3)
برای <malloc.h>
میکند. تابع malloc_info
در اندروید 6.0 (مارشملو) و بالاتر موجود است و طرح XML آن در <malloc.h>
Bionic مستند شده است.
سرور Dalvik Debug Monitor
شما همچنین می توانید از سرور Dalvik Debug Monitor (DDMS) برای به دست آوردن یک نمای گرافیکی از خروجی Malloc Debug استفاده کنید.
برای استفاده از DDMS، ابتدا رابط کاربری حافظه اصلی آن را روشن کنید:
-
~/.android/ddms.cfg
- خط را اضافه کنید:
native=true
پس از راهاندازی مجدد DDMS و انتخاب فرآیند، میتوانید به برگه تخصیص بومی جدید بروید و آن را با فهرستی از تخصیصها پر کنید. این به ویژه برای رفع اشکال نشت حافظه مفید است.