ตัวทำความสะอาดที่อยู่: HWASan/ASan
นักพัฒนาซอฟต์แวร์แพลตฟอร์ม Android ใช้ HWAddressSanitizer (HWASan) เพื่อค้นหาข้อบกพร่องด้านหน่วยความจําใน C/C++
คุณสามารถแฟลชภาพ HWASan ที่คอมไพล์ไว้ล่วงหน้าลงในอุปกรณ์ Pixel ที่รองรับได้จาก ci.android.com (วิธีการตั้งค่าโดยละเอียด)
ตั้งแต่ Android 8.0 (Oreo) คุณสามารถใช้ ASan เพื่อแก้ไขข้อบกพร่องของแอปในเวอร์ชันที่ใช้งานจริงแบบไม่รูทได้ด้วย อุปกรณ์ ดูวิธีการได้ในวิกิของ ASanฮีปโพรด
Android 10 รองรับ Heapprofd ซึ่งเป็นเครื่องมือสร้างโปรไฟล์ฮีปการสุ่มตัวอย่างแบบโอเวอร์เฮดต่ำ Heapprofd ช่วยให้คุณระบุแหล่งที่มาของการใช้งานหน่วยความจำในเครื่องกับ Calltack ในโปรแกรมได้ โปรดดู Heapprofd - Android Heap Profiler ใน เว็บไซต์เอกสารประกอบของ Perfetto เพื่อดูข้อมูลเพิ่มเติม
การแก้ไขข้อบกพร่อง Malloc
ดู Malloc แก้ไขข้อบกพร่องและเนทีฟ การติดตามหน่วยความจำโดยใช้ libc Callback สำหรับคำอธิบายอย่างละเอียดเกี่ยวกับ ตัวเลือกการแก้ไขข้อบกพร่องที่ใช้ได้กับปัญหาเกี่ยวกับหน่วยความจำของระบบ
ไม่สามารถเข้าถึงได้
Libmunreachable ของ Android คือเครื่องมือตรวจจับการรั่วไหลของหน่วยความจำในเครื่องแบบ Zero-over-head โดยใช้เครื่องมือรวบรวมขยะแบบทำเครื่องหมายและกวาดที่ไม่แม่นยำผ่านหน่วยความจำในเครื่องทั้งหมด รายงานการบล็อกที่เข้าถึงไม่ได้ว่าเป็นการรั่วไหล ดูวิธีการใช้งานได้ที่หัวข้อเอกสารประกอบของ libmemunreachable
ตะขอของ Malloc
หากต้องการสร้างเครื่องมือของคุณเอง libc ของ Android ยังรองรับการสกัดกั้นทั้งหมด การจัดสรร/การโทรที่ไม่เสียค่าใช้จ่ายที่เกิดขึ้นระหว่างการดำเนินการโปรแกรม โปรดดู malloc_hooks เอกสาร สำหรับวิธีการใช้งาน
สถิติ Malloc
Android รองรับส่วนขยาย mallinfo(3)
และ malloc_info(3)
ใน <malloc.h>
ฟังก์ชัน malloc_info
พร้อมใช้งานใน Android 6.0 (Marshmallow) ขึ้นไป และมีการบันทึกสคีมา XML ไว้ใน <malloc.h>
ของ Bionic
เซิร์ฟเวอร์เครื่องมือตรวจสอบข้อบกพร่องของ Dalvik
คุณยังสามารถใช้การแก้ไขข้อบกพร่อง Daalvik ตรวจสอบเซิร์ฟเวอร์ (DDMS) เพื่อรับมุมมองกราฟิกของการแก้ไขข้อบกพร่อง Malloc เอาต์พุต
หากต้องการใช้ DDMS ให้เปิด UI หน่วยความจําของระบบก่อนโดยทำดังนี้
- เปิด
~/.android/ddms.cfg
- เพิ่มบรรทัด:
native=true
เมื่อเปิด DDMS อีกครั้งและเลือกกระบวนการแล้ว คุณสามารถเปลี่ยนไปใช้แท็บการจัดสรรใหม่และป้อนข้อมูลรายการการจัดสรร นี่คือ มีประโยชน์อย่างยิ่งในการแก้ไขข้อบกพร่อง หน่วยความจำรั่วไหล