diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp --- a/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp +++ b/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp @@ -218,7 +218,9 @@ RenderModuleLocation(buffer, info->module, info->module_offset, info->module_arch, strip_path_prefix); +#ifndef SANITIZER_APPLE MaybeBuildIdToBuffer(*info, /*PrefixSpace=*/true, buffer); +#endif } else { buffer->append("()"); } @@ -231,7 +233,9 @@ // Always strip the module name for %M. RenderModuleLocation(buffer, StripModuleName(info->module), info->module_offset, info->module_arch, ""); +#ifndef SANITIZER_APPLE MaybeBuildIdToBuffer(*info, /*PrefixSpace=*/true, buffer); +#endif } else { buffer->append("(%p)", (void *)address); } diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cpp b/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cpp --- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cpp +++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cpp @@ -137,11 +137,19 @@ RenderFrame(&str, "%M", frame_no, info.address, &info, false); EXPECT_NE(nullptr, internal_strstr(str.data(), "(module+0x")); EXPECT_NE(nullptr, internal_strstr(str.data(), "200")); +#if SANITIZER_APPLE + EXPECT_EQ(nullptr, internal_strstr(str.data(), "BuildId: 5566")); +#else EXPECT_NE(nullptr, internal_strstr(str.data(), "BuildId: 5566")); +#endif str.clear(); RenderFrame(&str, "%L", frame_no, info.address, &info, false); +#if SANITIZER_APPLE + EXPECT_STREQ("(/path/to/module+0x200)", str.data()); +#else EXPECT_STREQ("(/path/to/module+0x200) (BuildId: 5566)", str.data()); +#endif str.clear(); RenderFrame(&str, "%b", frame_no, info.address, &info, false);