diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp --- a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp +++ b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp @@ -987,9 +987,11 @@ // Verify that interceptors really work. We'll use dlsym to locate // "puts", if interceptors are working, it should really point to // "wrap_puts" within our own dylib. + // "__sanitizer_print_stack_trace" is an exported function, but not + // overridable by the client. Dl_info info_puts, info_runtime; RAW_CHECK(dladdr(dlsym(RTLD_DEFAULT, "puts"), &info_puts)); - RAW_CHECK(dladdr((void *)__sanitizer_report_error_summary, &info_runtime)); + RAW_CHECK(dladdr((void *)__sanitizer_print_stack_trace, &info_runtime)); if (internal_strcmp(info_puts.dli_fname, info_runtime.dli_fname) != 0) { Report( "ERROR: Interceptors are not working. This may be because %s is " @@ -1039,7 +1041,7 @@ return; Dl_info info; - RAW_CHECK(dladdr((void *)__sanitizer_report_error_summary, &info)); + RAW_CHECK(dladdr((void *)__sanitizer_print_stack_trace, &info)); const char *dylib_name = StripModuleName(info.dli_fname); bool lib_is_in_env = internal_strstr(dyld_insert_libraries, dylib_name); if (!lib_is_in_env)