diff options
author | siggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-05 18:24:04 +0000 |
---|---|---|
committer | siggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-05 18:24:04 +0000 |
commit | ea990c0232280b5347ec0bd1ad6dbbe8aa17d4d5 (patch) | |
tree | 389998e7056b13520dccbe87533b5447e851db21 /chrome_frame/crash_reporting | |
parent | f5bf8ccfcaa51e3f8b12e7eaf4bb26fa6bf2d69c (diff) | |
download | chromium_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.cc | 21 |
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 | |