डिबगिंग नेटिव मेमोरी यूज़

पता सेनिटाइज़र: हवासन/आसन

एंड्रॉइड प्लेटफॉर्म डेवलपर्स C/C++ में मेमोरी बग्स को खोजने के लिए HWAddressSanitizer (HWASan) का उपयोग करते हैं।

आप ci.android.com ( विस्तृत सेटअप निर्देश ) से समर्थित पिक्सेल उपकरणों के लिए पूर्वनिर्मित HWASan छवियों को फ्लैश कर सकते हैं।

एंड्रॉइड 8.0 (ओरेओ) के बाद से गैर-रूट उत्पादन उपकरणों पर ऐप्स को डीबग करने के लिए ASan का उपयोग करना भी संभव है। आप आसन विकि पर निर्देश पा सकते हैं।

हेप्रोफ्ड

Android 10 heapprofd, एक लो-ओवरहेड, सैंपलिंग हीप प्रोफाइलर को सपोर्ट करता है। heapprofd आपको अपने प्रोग्राम में कॉलस्टैक के लिए मूल मेमोरी उपयोग का श्रेय देता है। अधिक जानकारी के लिए परफेटो प्रलेखन साइट पर heapprofd - Android हीप प्रोफाइलर देखें।

मॉलोक डिबग

स्थानीय स्मृति समस्याओं के लिए उपलब्ध डिबगिंग विकल्पों के विस्तृत विवरण के लिए, libc कॉलबैक का उपयोग करके मैलोक डीबग औरनेटिव मेमोरी ट्रैकिंग देखें।

लिबमेमुनरीचेबल

एंड्रॉइड का लिबमेमुनरीचेबल एक जीरो-ओवरहेड नेटिव मेमोरी लीक डिटेक्टर है। यह सभी मूल मेमोरी पर एक सटीक मार्क-एंड-स्वीप कचरा कलेक्टर पास का उपयोग करता है, किसी भी पहुंच योग्य ब्लॉक को लीक के रूप में रिपोर्ट करता है। उपयोग निर्देशों के लिए libmemun पहुंच योग्य दस्तावेज़ देखें।

मॉलोक हुक

यदि आप अपने स्वयं के उपकरण बनाना चाहते हैं, तो एंड्रॉइड का libc प्रोग्राम निष्पादन के दौरान होने वाली सभी आवंटन/मुक्त कॉलों को अवरुद्ध करने का भी समर्थन करता है। उपयोग के निर्देशों के लिए malloc_hooks दस्तावेज़ देखें।

मॉलोक आँकड़े

Android <malloc.h> के लिए mallinfo(3) और malloc_info(3) एक्सटेंशन का समर्थन करता है। malloc_info फ़ंक्शन एंड्रॉइड 6.0 (मार्शमैलो) और उच्चतर में उपलब्ध है और इसकी एक्सएमएल स्कीमा बायोनिक के <malloc.h> में प्रलेखित है।

Dalvik डीबग मॉनिटर सर्वर

आप मैलोक डीबग आउटपुट का ग्राफिकल दृश्य प्राप्त करने के लिए दल्विक डीबग मॉनिटर सर्वर (डीडीएमएस) का भी उपयोग कर सकते हैं।

DDMS का उपयोग करने के लिए, पहले इसकी मूल मेमोरी UI चालू करें:

  1. ओपन ~/.android/ddms.cfg
  2. पंक्ति जोड़ें: native=true

डीडीएमएस को फिर से लॉन्च करने और एक प्रक्रिया का चयन करने पर, आप नए मूल आवंटन टैब पर स्विच कर सकते हैं और इसे आवंटन की सूची के साथ भर सकते हैं। यह मेमोरी लीक डीबग करने के लिए विशेष रूप से उपयोगी है।