summaryrefslogtreecommitdiffstats
path: root/chrome_frame/crash_reporting
diff options
context:
space:
mode:
authorsiggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-05 18:24:04 +0000
committersiggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-05 18:24:04 +0000
commitea990c0232280b5347ec0bd1ad6dbbe8aa17d4d5 (patch)
tree389998e7056b13520dccbe87533b5447e851db21 /chrome_frame/crash_reporting
parentf5bf8ccfcaa51e3f8b12e7eaf4bb26fa6bf2d69c (diff)
downloadchromium_src-ea990c0232280b5347ec0bd1ad6dbbe8aa17d4d5.zip
chromium_src-ea990c0232280b5347ec0bd1ad6dbbe8aa17d4d5.tar.gz
chromium_src-ea990c0232280b5347ec0bd1ad6dbbe8aa17d4d5.tar.bz2
Tweak the crash dump flags to make sure we get PEB/TEB and the unloaded module list where available.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38224 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/crash_reporting')
-rw-r--r--chrome_frame/crash_reporting/crash_report.cc21
1 files changed, 20 insertions, 1 deletions
diff --git a/chrome_frame/crash_reporting/crash_report.cc b/chrome_frame/crash_reporting/crash_report.cc
index 1f1041e..89dd409 100644
--- a/chrome_frame/crash_reporting/crash_report.cc
+++ b/chrome_frame/crash_reporting/crash_report.cc
@@ -13,6 +13,24 @@
const wchar_t kGoogleUpdatePipeName[] = L"\\\\.\\pipe\\GoogleCrashServices\\";
static google_breakpad::ExceptionHandler * g_breakpad = NULL;
+// These minidump flag combinations have been tested safe agains the
+// DbgHelp.dll version that ships with Windows XP SP2.
+const MINIDUMP_TYPE kSmallDumpType = static_cast<MINIDUMP_TYPE>(
+ MiniDumpWithProcessThreadData | // Get PEB and TEB.
+ MiniDumpWithUnloadedModules); // Get unloaded modules when available.
+
+const MINIDUMP_TYPE kLargerDumpType = static_cast<MINIDUMP_TYPE>(
+ MiniDumpWithProcessThreadData | // Get PEB and TEB.
+ MiniDumpWithUnloadedModules | // Get unloaded modules when available.
+ MiniDumpWithIndirectlyReferencedMemory); // Get memory referenced by stack.
+
+// Large dump with all process memory.
+const MINIDUMP_TYPE kFullDumpType = static_cast<MINIDUMP_TYPE>(
+ MiniDumpWithFullMemory | // Full memory from process.
+ MiniDumpWithProcessThreadData | // Get PEB and TEB.
+ MiniDumpWithHandleData | // Get all handle information.
+ MiniDumpWithUnloadedModules); // Get unloaded modules when available.
+
#pragma code_seg(push, ".text$va")
static void veh_segment_start() {}
#pragma code_seg(pop)
@@ -120,7 +138,8 @@ bool InitializeVectoredCrashReportingWithPipeName(
return false;
}
- MINIDUMP_TYPE dump_type = full_dump ? MiniDumpWithFullMemory : MiniDumpNormal;
+ // TODO(siggi): Consider switching to kSmallerDumpType post-beta.
+ MINIDUMP_TYPE dump_type = full_dump ? kFullDumpType : kLargerDumpType;
g_breakpad = new google_breakpad::ExceptionHandler(
dump_path, NULL, NULL, NULL,
google_breakpad::ExceptionHandler::HANDLER_INVALID_PARAMETER |