איתור באגים בשימוש בזיכרון מקורי

כתובת Sanitizer: HWASan/ASan

מפתחי פלטפורמת אנדרואיד להשתמש HWAddressSanitizer (HWASan) כדי למצוא באגים זיכרון ב- C / C ++.

אתה יכול פלאש תמונות prebuilt HWASan למכשירי פיקסל נתמכים מן ci.android.com ( הוראות התקנה מפורטות ).

מכיוון שאנדרואיד 8.0 (Oreo) ניתן גם להשתמש ב- ASan לניפוי באגים ביישומי התקני ייצור שאינם מושרשים. ניתן למצוא הוראות על ויקי אסאן .

Heapprofd

אנדרואיד 10 תומך ב- heapprofd, פרופיל ערמה דגימה נמוך. heapprofd מאפשר לך לייחס את השימוש בזיכרון מקורי למערכות שיחות בתוכנית שלך. ראה heapprofd - אנדרואיד היפ Profiler על תיעוד האתר Perfetto לקבלת מידע נוסף.

איתור באגים במאלוק

ראה malloc Debug וNative מעקב הזיכרון באמצעות libc ההתקשרויות חוזר עבור תיאור מפורט של אפשרויות באגים זמינות לבעיות זיכרון ילידים.

לא ניתן להשיג

ה- libmemunreachable הוא גלאי דליפת זיכרון מקורי ללא אפס. הוא משתמש באספן זבל לא מדויק העובר על כל הזיכרון המקורי, ומדווח על כל בלוקים בלתי נגישים כהדלפות. עיין בתיעוד libmemunreachable לקבל הוראות שימוש.

ווים מאלוק

אם אתה רוצה לבנות כלים משלך, libc של אנדרואיד תומך גם ביירוט כל השיחות/שיחות חינם שמתרחשות במהלך ביצוע התוכנית. עיין בתיעוד malloc_hooks לקבל הוראות שימוש.

סטטיסטיקה של מאלוק

תומך מבוסס Android mallinfo(3) ו malloc_info(3) הרחבות <malloc.h> . malloc_info הפונקציה זמינה אנדרואיד 6.0 (צפריר) ומעלה ו סכימת XML שלה מתועדת Bionic של <malloc.h> .

שרת צג באגים של Dalvik

אתה יכול גם להשתמש שרת צג Debug Dalvik (DDMS) כדי לקבל תצוגה גרפית של פלט Debug malloc.

כדי להשתמש ב- DDMS, הפעל תחילה את ממשק המשתמש של הזיכרון המקורי שלו:

  1. Open ~/.android/ddms.cfg
  2. הוסף את השורה: native=true

לאחר הפעלה מחדש של DDMS ובחירת תהליך, תוכל לעבור לכרטיסיית ההקצאה המקורית החדשה ולאכלס אותה ברשימת הקצאות. הדבר שימושי במיוחד לאיתור באגים של דליפות זיכרון.