From ac81fe8657119c265edcc2f05b3e5b7c5b17ae9f Mon Sep 17 00:00:00 2001 From: Tamas Berghammer Date: Fri, 26 Aug 2016 15:54:59 +0100 Subject: Enable malloc debug using environment variables Previously malloc debug can be enabled only using global settings accessible to the root user only. This CL adds a new option to enable it using environment variables making it possible to use it with pure native (shell) applications on production builds (from shell user) and prepares it for using it from logwrapper on production devices. Remove the old environment variable and property since they are not necessary. Test: Enable malloc debug using environment variable and verify Test: that it only affects the commands launched from the shell. Test: Enable malloc debug using the property variable and verify Test: that it affects all commands. Test: Run all unit tests in 32 bit and 64 bit. Change-Id: Iecb75a3471552f619f196ad550c5f41fcd9ce8e5 --- libc/malloc_debug/malloc_debug.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libc/malloc_debug/malloc_debug.cpp') diff --git a/libc/malloc_debug/malloc_debug.cpp b/libc/malloc_debug/malloc_debug.cpp index d2bcf9967..bb16faaae 100644 --- a/libc/malloc_debug/malloc_debug.cpp +++ b/libc/malloc_debug/malloc_debug.cpp @@ -62,7 +62,8 @@ const MallocDispatch* g_dispatch; // ------------------------------------------------------------------------ __BEGIN_DECLS -bool debug_initialize(const MallocDispatch* malloc_dispatch, int* malloc_zygote_child); +bool debug_initialize(const MallocDispatch* malloc_dispatch, int* malloc_zygote_child, + const char* options); void debug_finalize(); void debug_get_malloc_leak_info( uint8_t** info, size_t* overall_size, size_t* info_size, size_t* total_memory, @@ -178,8 +179,9 @@ static void* InitHeader(Header* header, void* orig_pointer, size_t size) { return g_debug->GetPointer(header); } -bool debug_initialize(const MallocDispatch* malloc_dispatch, int* malloc_zygote_child) { - if (malloc_zygote_child == nullptr) { +bool debug_initialize(const MallocDispatch* malloc_dispatch, int* malloc_zygote_child, + const char* options) { + if (malloc_zygote_child == nullptr || options == nullptr) { return false; } @@ -194,7 +196,7 @@ bool debug_initialize(const MallocDispatch* malloc_dispatch, int* malloc_zygote_ } DebugData* debug = new DebugData(); - if (!debug->Initialize()) { + if (!debug->Initialize(options)) { delete debug; DebugDisableFinalize(); return false; -- cgit v1.2.3