Index: chrome_elf/chrome_elf_main.cc |
diff --git a/chrome_elf/chrome_elf_main.cc b/chrome_elf/chrome_elf_main.cc |
index 772c906f1d4e66d07739f797afb7fc867390ba4d..de6437596216e48bc1da6f0c6887303b306cce26 100644 |
--- a/chrome_elf/chrome_elf_main.cc |
+++ b/chrome_elf/chrome_elf_main.cc |
@@ -7,6 +7,7 @@ |
#include "chrome_elf/chrome_elf_main.h" |
#include "chrome_elf/blacklist/blacklist.h" |
+#include "chrome_elf/breakpad.h" |
#include "chrome_elf/ntdll_cache.h" |
void SignalChromeElf() { |
@@ -15,8 +16,13 @@ void SignalChromeElf() { |
BOOL APIENTRY DllMain(HMODULE module, DWORD reason, LPVOID reserved) { |
if (reason == DLL_PROCESS_ATTACH) { |
- InitCache(); |
- blacklist::Initialize(false); // Don't force, abort if beacon is present. |
+ InitializeCrashReporting(); |
+ |
+ __try { |
+ InitCache(); |
+ blacklist::Initialize(false); // Don't force, abort if beacon is present. |
+ } __except(GenerateCrashDump(GetExceptionInformation())) { |
+ } |
// TODO(csharp): Move additions to the DLL blacklist to a sane place. |
// blacklist::AddDllToBlacklist(L"foo.dll"); |