diff --git a/core/ptr_trace.h b/core/ptr_trace.h index bdc99a6d..f7f07a4e 100644 --- a/core/ptr_trace.h +++ b/core/ptr_trace.h @@ -70,8 +70,14 @@ static inline void ptr_trace_try_register_dump(void) { #else if (g_ptr_trace_dump_registered) return; g_ptr_trace_dump_registered = 1; - const char* env = getenv("HAKMEM_PTR_TRACE_DUMP"); - if (!(env && *env && *env != '0')) return; + + // Gate ENV check behind !HAKMEM_BUILD_RELEASE + static int g_dump_enabled = -1; + if (__builtin_expect(g_dump_enabled == -1, 0)) { + const char* env = getenv("HAKMEM_PTR_TRACE_DUMP"); + g_dump_enabled = (env && *env && *env != '0') ? 1 : 0; + } + if (!g_dump_enabled) return; atexit(ptr_trace_dump); #endif } @@ -84,8 +90,9 @@ static inline void ptr_trace_dump_now(const char* reason) { (void)reason; return; #else + // Gate ENV check behind !HAKMEM_BUILD_RELEASE static int verbose_mode = -1; - if (verbose_mode == -1) { + if (__builtin_expect(verbose_mode == -1, 0)) { const char* env = getenv("HAKMEM_PTR_TRACE_VERBOSE"); verbose_mode = (env && *env && *env != '0') ? 1 : 0; }