নেটিভ মেমরি ব্যবহার সংক্রান্ত সমস্যা সমাধান করা

Address Sanitizer: HWASan/ASan

Android প্ল্যাটফর্ম ডেভেলপাররা C/C++-এ মেমরি বাগ খুঁজে পেতে HWAddressSanitizer (HWASan) ব্যবহার করেন।

আপনি ci.android.com থেকে কাজ করে এমন Pixel ডিভাইসে আগে থেকে তৈরি HWASan ছবি ফ্ল্যাশ করতে পারবেন (সেট-আপ সংক্রান্ত বিস্তারিত নির্দেশাবলী)।

Android 8.0 (Oreo) থেকে, রুট না করা প্রোডাকশন ডিভাইসে অ্যাপ ডিবাগ করার জন্য ASan ব্যবহার করাও সম্ভব। আপনি ASan উইকি থেকে নির্দেশাবলী পেতে পারেন।

Heapprofd

Android ১০-এ heapprofd কাজ করে, এটি একটি লো-ওভারহেড, স্যাম্পলিং হিপ প্রোফাইলার। heapprofd আপনাকে প্রোগ্রামের কলস্ট্যাকে নেটিভ মেমরির ব্যবহার অ্যাট্রিবিউট করতে দেয়। আরও তথ্যের জন্য Perfetto ডকুমেন্টেশন সাইটে heapprofd - Android Heap Profiler দেখুন।

ম্যালোক ডিবাগ

নেটিভ মেমরি সংক্রান্ত সমস্যার জন্য উপলভ্য ডিবাগিং বিকল্পের বিস্তারিত বিবরণ পেতে Malloc Debug এবং libc কলব্যাক ব্যবহার করে নেটিভ মেমরি ট্র্যাকিং দেখুন।

libmemunreachable

Android-এর libmemunreachable হল একটি জিরো-ওভারহেড নেটিভ মেমরি লিক ডিটেক্টর। এটি সমস্ত নেটিভ মেমোরির উপর একটি অস্পষ্ট মার্ক-অ্যান্ড-সুইপ গার্বেজ কালেক্টর পাস ব্যবহার করে, কোনও অ্যাক্সেস করা যায় না এমন ব্লক লিক হিসেবে রিপোর্ট করে। ব্যবহারের নির্দেশাবলীর জন্য libmemunreachable ডকুমেন্টেশন দেখুন।

Malloc হুক

আপনি নিজের টুল তৈরি করতে চাইলে, Android-এর libc-ও প্রোগ্রাম এক্সিকিউশনের সময় হওয়া সব অ্যালোকেশন/ফ্রি কল ইন্টারসেপ্ট করার সুবিধা দেয়। ব্যবহারের নির্দেশাবলীর জন্য malloc_hooks ডকুমেন্টেশন দেখুন।

Malloc পরিসংখ্যান

Android-এ <malloc.h>-এর জন্য mallinfo(3)এবং malloc_info(3) এক্সটেনশন কাজ করে। malloc_info ফাংশন Android 6.0 (Marshmallow) ও এর পরের যেকোনও ভার্সনে উপলভ্য এবং এর XML স্কিমা Bionic-এর <malloc.h>-এ ডকুমেন্ট করা আছে।

Dalvik Debug Monitor Server

এছাড়াও, Malloc Debug আউটপুটের গ্রাফিক্যাল ভিউ পেতে, আপনি Dalvik Debug Monitor Server (DDMS) ব্যবহার করতে পারেন।

DDMS ব্যবহার করতে, প্রথমে এর নেটিভ মেমরি UI চালু করুন:

  1. ~/.android/ddms.cfg খুলুন
  2. লাইন যোগ করুন: native=true

DDMS আবার চালু করে কোনও প্রসেস বেছে নেওয়ার পরে, আপনি নতুন নেটিভ অ্যালোকেশন ট্যাবে যেতে এবং অ্যালোকেশনের তালিকা দিয়ে এটি পূরণ করতে পারবেন। এটি বিশেষ করে মেমরি লিক ডিবাগ করার জন্য উপযোগী।