Index: android_webview/crash_reporter/aw_microdump_crash_reporter.cc |
diff --git a/android_webview/crash_reporter/aw_microdump_crash_reporter.cc b/android_webview/crash_reporter/aw_microdump_crash_reporter.cc |
index 490cd9b7de7df929be54e441b5d5d16d774c861b..016288a9c672769c3e846a1a3c6ff3327c8addaa 100644 |
--- a/android_webview/crash_reporter/aw_microdump_crash_reporter.cc |
+++ b/android_webview/crash_reporter/aw_microdump_crash_reporter.cc |
@@ -5,6 +5,7 @@ |
#include "android_webview/crash_reporter/aw_microdump_crash_reporter.h" |
#include "base/lazy_instance.h" |
+#include "build/build_config.h" |
#include "components/crash/app/breakpad_linux.h" |
#include "components/crash/app/crash_reporter_client.h" |
@@ -38,6 +39,13 @@ bool g_enabled = false; |
} // namespace |
void EnableMicrodumpCrashReporter() { |
+#if defined(ARCH_CPU_X86_FAMILY) |
+ // Don't install signal handler on X86/64 because this breaks binary |
+ // translators that handle SIGSEGV in userspace and get chained after our |
+ // handler. See crbug.com/477444 |
+ return; |
+#endif |
+ |
if (g_enabled) { |
NOTREACHED() << "EnableMicrodumpCrashReporter called more than once"; |
return; |