Merge "Teach debuggerd to pass the secondary ring buffer to __scudo_get_error_info()." am: 03e961e392
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1587832
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I2f4d2b0ce76f79899d390816c38e897e7f1f01bc
diff --git a/libc/bionic/malloc_common_dynamic.cpp b/libc/bionic/malloc_common_dynamic.cpp
index 3a6958c..31d1e69 100644
--- a/libc/bionic/malloc_common_dynamic.cpp
+++ b/libc/bionic/malloc_common_dynamic.cpp
@@ -370,6 +370,7 @@
extern "C" const char* __scudo_get_stack_depot_addr();
extern "C" const char* __scudo_get_region_info_addr();
+extern "C" const char* __scudo_get_ring_buffer_addr();
// Initializes memory allocation framework once per process.
static void MallocInitImpl(libc_globals* globals) {
@@ -381,6 +382,7 @@
#if defined(USE_SCUDO)
__libc_shared_globals()->scudo_stack_depot = __scudo_get_stack_depot_addr();
__libc_shared_globals()->scudo_region_info = __scudo_get_region_info_addr();
+ __libc_shared_globals()->scudo_ring_buffer = __scudo_get_ring_buffer_addr();
#endif
// Prefer malloc debug since it existed first and is a more complete
diff --git a/libc/private/bionic_globals.h b/libc/private/bionic_globals.h
index 1d56a5d..e105c18 100644
--- a/libc/private/bionic_globals.h
+++ b/libc/private/bionic_globals.h
@@ -109,6 +109,7 @@
const char* scudo_stack_depot = nullptr;
const char* scudo_region_info = nullptr;
+ const char* scudo_ring_buffer = nullptr;
HeapTaggingLevel initial_heap_tagging_level = M_HEAP_TAGGING_LEVEL_NONE;
};
diff --git a/linker/linker_debuggerd_android.cpp b/linker/linker_debuggerd_android.cpp
index 203e441..cba6345 100644
--- a/linker/linker_debuggerd_android.cpp
+++ b/linker/linker_debuggerd_android.cpp
@@ -42,6 +42,7 @@
.gwp_asan_metadata = __libc_shared_globals()->gwp_asan_metadata,
.scudo_stack_depot = __libc_shared_globals()->scudo_stack_depot,
.scudo_region_info = __libc_shared_globals()->scudo_region_info,
+ .scudo_ring_buffer = __libc_shared_globals()->scudo_ring_buffer,
};
}
#endif