From 18f368560090619bb4284a408262feb86c747002 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 17 May 2018 16:11:53 -0700 Subject: [PATCH] Document using libmemunreachable on an app Document dumpsys meminfo --unreachable, and how to enable malloc_debug backtraces on a single app. Test: none Change-Id: I649afdfff1c7438f74950395639b06c39cae3ca0 --- libmemunreachable/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/libmemunreachable/README.md b/libmemunreachable/README.md index ae8fa94b3..6d9141a5f 100644 --- a/libmemunreachable/README.md +++ b/libmemunreachable/README.md @@ -12,6 +12,27 @@ In the default (zero-overhead) mode, the returned data on leaks is limited to th Usage ------- +### In Android apps ### + +libmemunreachble is loaded by zygote and can be triggered with `dumpsys -t 600 meminfo --unreachable [process]`. + +To enable malloc\_debug backtraces on allocations for a single app process on a userdebug device, use: +``` +adb root +adb shell setprop libc.debug.malloc.program app_process +adb shell setprop wrap.[process] "\$\@" +adb shell setprop libc.debug.malloc.options backtrace=4 +``` + +Kill and restart the app, trigger the leak, and then run `dumpsys -t 600 meminfo --unreachable [process]`. + +To disable malloc\_debug: +``` +adb shell setprop libc.debug.malloc.options "''" +adb shell setprop libc.debug.malloc.program "''" +adb shell setprop wrap.[process] "''" +``` + ### C interface ### #### `bool LogUnreachableMemory(bool log_contents, size_t limit)` ####