зеркало из https://github.com/electron/electron.git
win: Only install breakpad hook when crash-reporter is used
This commit is contained in:
Родитель
d90b598125
Коммит
f5c25d6277
|
@ -19,10 +19,6 @@
|
|||
#include "content/public/common/content_switches.h"
|
||||
#include "ui/base/resource/resource_bundle.h"
|
||||
|
||||
#if defined(OS_WIN)
|
||||
#include "atom/common/crash_reporter/crash_reporter_win.h"
|
||||
#endif
|
||||
|
||||
namespace atom {
|
||||
|
||||
namespace {
|
||||
|
@ -73,10 +69,6 @@ bool AtomMainDelegate::BasicStartupComplete(int* exit_code) {
|
|||
// Logging with pid and timestamp.
|
||||
logging::SetLogItems(true, false, true, false);
|
||||
|
||||
#if defined(OS_WIN)
|
||||
crash_reporter::SetupV8CodeRangeHook();
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG) && defined(OS_LINUX)
|
||||
// Enable convient stack printing.
|
||||
base::debug::EnableInProcessStackDumping();
|
||||
|
|
|
@ -133,11 +133,6 @@ void UnregisterNonABICompliantCodeRange(void* start) {
|
|||
|
||||
} // namespace
|
||||
|
||||
void SetupV8CodeRangeHook() {
|
||||
gin::Debug::SetCodeRangeCreatedCallback(RegisterNonABICompliantCodeRange);
|
||||
gin::Debug::SetCodeRangeDeletedCallback(UnregisterNonABICompliantCodeRange);
|
||||
}
|
||||
|
||||
CrashReporterWin::CrashReporterWin() {
|
||||
}
|
||||
|
||||
|
@ -187,6 +182,20 @@ void CrashReporterWin::InitBreakpad(const std::string& product_name,
|
|||
|
||||
if (!breakpad_->IsOutOfProcess())
|
||||
LOG(ERROR) << "Cannot initialize out-of-process crash handler";
|
||||
|
||||
#ifdef _WIN64
|
||||
// Hook up V8 to breakpad.
|
||||
{
|
||||
// gin::Debug::SetCodeRangeCreatedCallback only runs the callback when
|
||||
// Isolate is just created, so we have to manually run following code here.
|
||||
void* code_range = nullptr;
|
||||
size_t size = 0;
|
||||
v8::Isolate::GetCurrent()->GetCodeRange(&code_range, &size);
|
||||
if (code_range && size)
|
||||
RegisterNonABICompliantCodeRange(code_range, size);
|
||||
}
|
||||
gin::Debug::SetCodeRangeDeletedCallback(UnregisterNonABICompliantCodeRange);
|
||||
#endif
|
||||
}
|
||||
|
||||
void CrashReporterWin::SetUploadParameters() {
|
||||
|
|
|
@ -17,9 +17,6 @@ template <typename T> struct DefaultSingletonTraits;
|
|||
|
||||
namespace crash_reporter {
|
||||
|
||||
// Hook up V8 to breakpad.
|
||||
void SetupV8CodeRangeHook();
|
||||
|
||||
class CrashReporterWin : public CrashReporter {
|
||||
public:
|
||||
static CrashReporterWin* GetInstance();
|
||||
|
|
Загрузка…
Ссылка в новой задаче