Index: chrome/common/logging_chrome.cc |
diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc |
index f738c3fe66758cf20dcf5d7d8939fdada4a32c3e..3b2e579fe6c955441335e6af0d41992f3e69388a 100644 |
--- a/chrome/common/logging_chrome.cc |
+++ b/chrome/common/logging_chrome.cc |
@@ -47,6 +47,7 @@ |
#include "chrome/common/chrome_constants.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/chrome_switches.h" |
+#include "chrome/common/dump_without_crashing.h" |
#include "chrome/common/env_vars.h" |
#include "ipc/ipc_logging.h" |
@@ -78,12 +79,6 @@ const GUID kChromeTraceProviderName = { |
{ 0x80, 0xc1, 0x52, 0x7f, 0xea, 0x23, 0xe3, 0xa7 } }; |
#endif |
-#if defined(USE_LINUX_BREAKPAD) || defined(OS_MACOSX) |
-// Pointer to the function that's called by DumpWithoutCrashing() to dump the |
-// process's memory. |
-void (*dump_without_crashing_function_)() = NULL; |
-#endif |
- |
// Assertion handler for logging errors that occur when dialogs are |
// silenced. To record a new error, pass the log string associated |
// with that error in the str parameter. |
@@ -97,13 +92,7 @@ void SilentRuntimeReportHandler(const std::string& str) { |
// Handler to silently dump the current process when there is an assert in |
// chrome. |
void DumpProcessAssertHandler(const std::string& str) { |
- // Get the breakpad pointer from chrome.exe |
- typedef void (__cdecl *DumpProcessFunction)(); |
- DumpProcessFunction DumpProcess = reinterpret_cast<DumpProcessFunction>( |
- ::GetProcAddress(::GetModuleHandle(chrome::kBrowserProcessExecutableName), |
- "DumpProcess")); |
- if (DumpProcess) |
- DumpProcess(); |
+ logging::DumpWithoutCrashing(); |
} |
#endif // OS_WIN |
MSVC_ENABLE_OPTIMIZE(); |
@@ -443,24 +432,6 @@ size_t GetFatalAssertions(AssertionList* assertions) { |
return assertion_count; |
} |
-void DumpWithoutCrashing() { |
-#if defined(OS_WIN) |
- std::string str; |
- DumpProcessAssertHandler(str); |
-#elif defined(USE_LINUX_BREAKPAD) || defined(OS_MACOSX) |
- if (dump_without_crashing_function_) |
- (*dump_without_crashing_function_)(); |
-#else |
- NOTIMPLEMENTED(); |
-#endif |
-} |
- |
-#if defined(USE_LINUX_BREAKPAD) || defined(OS_MACOSX) |
-void SetDumpWithoutCrashingFunction(void (*function)()) { |
- dump_without_crashing_function_ = function; |
-} |
-#endif |
- |
FilePath GenerateTimestampedName(const FilePath& base_path, |
base::Time timestamp) { |
base::Time::Exploded time_deets; |