diff --git a/compiler-rt/lib/scudo/standalone/include/scudo/interface.h b/compiler-rt/lib/scudo/standalone/include/scudo/interface.h index 3c083ed7f9da2..6c0c521f8d82f 100644 --- a/compiler-rt/lib/scudo/standalone/include/scudo/interface.h +++ b/compiler-rt/lib/scudo/standalone/include/scudo/interface.h @@ -159,6 +159,11 @@ size_t __scudo_get_ring_buffer_size(void); #define M_MEMTAG_TUNING_UAF 1 #endif +// Print internal stats to the log. +#ifndef M_LOG_STATS +#define M_LOG_STATS -205 +#endif + } // extern "C" #endif // SCUDO_INTERFACE_H_ diff --git a/compiler-rt/lib/scudo/standalone/wrappers_c.inc b/compiler-rt/lib/scudo/standalone/wrappers_c.inc index 3e495eaa4a39e..2c8e382dba0b0 100644 --- a/compiler-rt/lib/scudo/standalone/wrappers_c.inc +++ b/compiler-rt/lib/scudo/standalone/wrappers_c.inc @@ -196,6 +196,9 @@ INTERFACE WEAK int SCUDO_PREFIX(mallopt)(int param, int value) { } else if (param == M_PURGE_ALL) { SCUDO_ALLOCATOR.releaseToOS(scudo::ReleaseToOS::ForceAll); return 1; + } else if (param == M_LOG_STATS) { + SCUDO_ALLOCATOR.printStats(); + return 1; } else { scudo::Option option; switch (param) {