platform_bionic/libc/malloc_debug/Android.bp
Christopher Ferris 6c619a0da3 Refactor the malloc_info code.
malloc_info needs to be per native allocator, but the code treated it
like a global function that doesn't depend on the native memory allocator.

Update malloc debug to dump the actual pointers that it has been tracking.

Test: bionic-unit-tests pass.
Test: malloc debug tests pass.
Test: malloc hook tests pass.
Change-Id: I3b0d4d748489dd84c16d16933479dc8b8d79013e
Merged-In: I3b0d4d748489dd84c16d16933479dc8b8d79013e
(cherry picked from commit a3656a98b1)
2019-03-07 08:39:55 -08:00

163 lines
3.3 KiB
Text

// ==============================================================
// libc_malloc_debug_backtrace.a
// ==============================================================
// Used by libmemunreachable
cc_library_static {
name: "libc_malloc_debug_backtrace",
srcs: [
"backtrace.cpp",
"MapData.cpp",
],
stl: "libc++_static",
whole_static_libs: [
"libbase",
"libasync_safe",
"libdemangle",
],
include_dirs: ["bionic/libc"],
export_include_dirs: ["."],
sanitize: {
never: true,
},
native_coverage: false,
// -Wno-error=format-zero-length needed for gcc to compile.
cflags: [
"-Wall",
"-Werror",
"-Wno-error=format-zero-length",
],
}
// ==============================================================
// libc_malloc_debug.so
// ==============================================================
cc_library {
name: "libc_malloc_debug",
srcs: [
"Config.cpp",
"DebugData.cpp",
"debug_disable.cpp",
"GuardData.cpp",
"malloc_debug.cpp",
"PointerData.cpp",
"RecordData.cpp",
"UnwindBacktrace.cpp",
],
stl: "libc++_static",
// Only need this for arm since libc++ uses its own unwind code that
// doesn't mix with the other default unwind code.
arch: {
arm: {
static_libs: ["libunwind_llvm"],
},
},
static_libs: [
"libasync_safe",
"libbase",
"libdemangle",
"libc_malloc_debug_backtrace",
],
shared_libs: [
"libunwindstack",
],
multilib: {
lib32: {
version_script: "exported32.map",
},
lib64: {
version_script: "exported64.map",
},
},
allow_undefined_symbols: true,
include_dirs: ["bionic/libc"],
sanitize: {
never: true,
},
native_coverage: false,
// -Wno-error=format-zero-length needed for gcc to compile.
cflags: [
"-Wall",
"-Werror",
"-fno-stack-protector",
"-Wno-error=format-zero-length",
"-Wthread-safety",
],
}
// ==============================================================
// Unit Tests
// ==============================================================
cc_test {
name: "malloc_debug_unit_tests",
srcs: [
"tests/backtrace_fake.cpp",
"tests/log_fake.cpp",
"tests/libc_fake.cpp",
"tests/malloc_debug_config_tests.cpp",
"tests/malloc_debug_unit_tests.cpp",
],
local_include_dirs: ["tests"],
include_dirs: [
"bionic/libc",
"bionic/libc/async_safe/include",
],
static_libs: [
"libc_malloc_debug",
"libdemangle",
"libtinyxml2",
],
shared_libs: [
"libbase",
"libunwindstack",
],
cflags: [
"-Wall",
"-Werror",
"-Wno-error=format-zero-length",
"-O0",
],
}
// ==============================================================
// System Tests
// ==============================================================
cc_test {
name: "malloc_debug_system_tests",
srcs: [
"tests/malloc_debug_system_tests.cpp",
],
shared_libs: [
"libbase",
"liblog",
"libunwindstack",
],
cflags: [
"-Wall",
"-Werror",
"-O0",
],
}