зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1686918 - Disable the new Linux minidump writer on all architectures but x86 & x86-64 r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D101870
This commit is contained in:
Родитель
31392e854e
Коммит
00fe7e97ef
|
@ -51,7 +51,7 @@
|
|||
#include "common/linux/eintr_wrapper.h"
|
||||
#include "common/linux/safe_readlink.h"
|
||||
|
||||
#if !defined(__ANDROID__)
|
||||
#if defined(MOZ_OXIDIZED_BREAKPAD)
|
||||
#include "mozilla/toolkit/crashreporter/rust_minidump_writer_linux_ffi_generated.h"
|
||||
#endif
|
||||
|
||||
|
@ -270,16 +270,16 @@ CrashGenerationServer::ClientEvent(short revents)
|
|||
if (!MakeMinidumpFilename(minidump_filename))
|
||||
return true;
|
||||
|
||||
#if defined(__ANDROID__)
|
||||
if (!google_breakpad::WriteMinidump(minidump_filename.c_str(),
|
||||
crashing_pid, crash_context,
|
||||
kCrashContextSize)) {
|
||||
#if defined(MOZ_OXIDIZED_BREAKPAD)
|
||||
if (!write_minidump_linux_with_context(minidump_filename.c_str(),
|
||||
crashing_pid, crash_context)) {
|
||||
close(signal_fd);
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
if (!write_minidump_linux_with_context(minidump_filename.c_str(),
|
||||
crashing_pid, crash_context)) {
|
||||
if (!google_breakpad::WriteMinidump(minidump_filename.c_str(),
|
||||
crashing_pid, crash_context,
|
||||
kCrashContextSize)) {
|
||||
close(signal_fd);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
#include "common/linux/eintr_wrapper.h"
|
||||
#include "third_party/lss/linux_syscall_support.h"
|
||||
#include "prenv.h"
|
||||
#if !defined(__ANDROID__)
|
||||
#if defined(MOZ_OXIDIZED_BREAKPAD)
|
||||
#include "mozilla/toolkit/crashreporter/rust_minidump_writer_linux_ffi_generated.h"
|
||||
#endif
|
||||
|
||||
|
@ -852,14 +852,14 @@ bool ExceptionHandler::WriteMinidumpForChild(pid_t child,
|
|||
// This function is not run in a compromised context.
|
||||
MinidumpDescriptor descriptor(dump_path);
|
||||
descriptor.UpdatePath();
|
||||
#if defined(__ANDROID__)
|
||||
#if defined(MOZ_OXIDIZED_BREAKPAD)
|
||||
if (!write_minidump_linux(descriptor.path(), child, child_blamed_thread))
|
||||
return false;
|
||||
#else
|
||||
if (!google_breakpad::WriteMinidump(descriptor.path(),
|
||||
child,
|
||||
child_blamed_thread))
|
||||
return false;
|
||||
#else
|
||||
if (!write_minidump_linux(descriptor.path(), child, child_blamed_thread))
|
||||
return false;
|
||||
#endif
|
||||
|
||||
// nullptr here for phc::AddrInfo* is ok because this is not a crash.
|
||||
|
|
|
@ -53,7 +53,7 @@ if CONFIG["MOZ_CRASHREPORTER"]:
|
|||
"google-breakpad/src/processor",
|
||||
]
|
||||
|
||||
if CONFIG["OS_TARGET"] != "Android":
|
||||
if CONFIG["MOZ_OXIDIZED_BREAKPAD"]:
|
||||
DIRS += ["rust_minidump_writer_linux"]
|
||||
|
||||
DIRS += [
|
||||
|
|
|
@ -36,6 +36,7 @@ glean_with_gecko = ["gkrust-shared/glean_with_gecko", "fog-gtest"]
|
|||
rust_fxa_client = ["gkrust-shared/rust_fxa_client"]
|
||||
with_dbus = ["gkrust-shared/with_dbus"]
|
||||
thread_sanitizer = ["gkrust-shared/thread_sanitizer"]
|
||||
oxidized_breakpad = ["gkrust-shared/oxidized_breakpad"]
|
||||
|
||||
[dependencies]
|
||||
bench-collections-gtest = { path = "../../../../xpcom/rust/gtest/bench-collections" }
|
||||
|
|
|
@ -37,6 +37,7 @@ glean_with_gecko = ["gkrust-shared/glean_with_gecko"]
|
|||
rust_fxa_client = ["gkrust-shared/rust_fxa_client"]
|
||||
with_dbus = ["gkrust-shared/with_dbus"]
|
||||
thread_sanitizer = ["gkrust-shared/thread_sanitizer"]
|
||||
oxidized_breakpad = ["gkrust-shared/oxidized_breakpad"]
|
||||
|
||||
[dependencies]
|
||||
gkrust-shared = { path = "shared" }
|
||||
|
|
|
@ -88,3 +88,6 @@ if CONFIG['MOZ_USING_WASM_SANDBOXING']:
|
|||
|
||||
if CONFIG['MOZ_ENABLE_DBUS']:
|
||||
gkrust_features += ['with_dbus']
|
||||
|
||||
if CONFIG['MOZ_OXIDIZED_BREAKPAD']:
|
||||
gkrust_features += ['oxidized_breakpad']
|
||||
|
|
|
@ -55,6 +55,7 @@ unic-langid = { version = "0.9", features = ["likelysubtags"] }
|
|||
unic-langid-ffi = { path = "../../../../intl/locale/rust/unic-langid-ffi" }
|
||||
fluent-langneg = { version = "0.13", features = ["cldr"] }
|
||||
fluent-langneg-ffi = { path = "../../../../intl/locale/rust/fluent-langneg-ffi" }
|
||||
rust_minidump_writer_linux = { path = "../../../crashreporter/rust_minidump_writer_linux", optional = true }
|
||||
|
||||
# Note: `modern_sqlite` means rusqlite's bindings file be for a sqlite with
|
||||
# version less than or equal to what we link to. This isn't a problem because we
|
||||
|
@ -74,9 +75,6 @@ qcms = { path = "../../../../gfx/qcms", features = ["c_bindings"] }
|
|||
viaduct = { git = "https://github.com/mozilla/application-services", rev = "8a576fbe79199fa8664f64285524017f74ebcc5f"}
|
||||
webext_storage_bridge = { path = "../../../components/extensions/storage/webext_storage_bridge" }
|
||||
|
||||
[target.'cfg(target_os = "linux")'.dependencies]
|
||||
rust_minidump_writer_linux = { path = "../../../../toolkit/crashreporter/rust_minidump_writer_linux" }
|
||||
|
||||
[build-dependencies]
|
||||
rustc_version = "0.2"
|
||||
|
||||
|
@ -110,6 +108,7 @@ remote_agent = ["remote"]
|
|||
glean = ["fog_control"]
|
||||
glean_with_gecko = ["fog_control/with_gecko"]
|
||||
rust_fxa_client = ["firefox-accounts-bridge"]
|
||||
oxidized_breakpad = ["rust_minidump_writer_linux"]
|
||||
with_dbus = ["audio_thread_priority/with_dbus"]
|
||||
thread_sanitizer = ["xpcom/thread_sanitizer"]
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ extern crate remote;
|
|||
|
||||
extern crate gecko_logger;
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
#[cfg(feature = "oxidized_breakpad")]
|
||||
extern crate rust_minidump_writer_linux;
|
||||
|
||||
extern crate log;
|
||||
|
|
|
@ -2492,3 +2492,16 @@ option(
|
|||
)
|
||||
|
||||
set_define("MOZ_USE_NATIVE_POPUP_WINDOWS", True, when="MOZ_USE_NATIVE_POPUP_WINDOWS")
|
||||
|
||||
|
||||
# Crash reporter options
|
||||
# ==============================================================
|
||||
@depends(target)
|
||||
def oxidized_breakpad(target):
|
||||
if target.kernel == "Linux" and target.os != "Android":
|
||||
return target.cpu in ("x86", "x86_64")
|
||||
return False
|
||||
|
||||
|
||||
set_config("MOZ_OXIDIZED_BREAKPAD", True, when=oxidized_breakpad)
|
||||
set_define("MOZ_OXIDIZED_BREAKPAD", True, when=oxidized_breakpad)
|
||||
|
|
Загрузка…
Ссылка в новой задаче