| Index: handler/win/crash_report_exception_handler.cc
|
| diff --git a/handler/win/crash_report_exception_handler.cc b/handler/win/crash_report_exception_handler.cc
|
| index 843ac0f5a9aade7cfde120853f4fadffdb8aa9c1..a8ac655d98c576736cc44eb42f7b704d683037ab 100644
|
| --- a/handler/win/crash_report_exception_handler.cc
|
| +++ b/handler/win/crash_report_exception_handler.cc
|
| @@ -64,6 +64,39 @@ unsigned int CrashReportExceptionHandler::ExceptionHandlerServerException(
|
| const unsigned int termination_code =
|
| process_snapshot.Exception()->Exception();
|
|
|
| + // XXX XXX XXX
|
| + ScopedFileHandle file(LoggingOpenFileForWrite(
|
| + base::FilePath(FILE_PATH_LITERAL(
|
| + "c:\\users\\scott\\desktop\\minidumpwritedump.dmp")),
|
| + FileWriteMode::kTruncateOrCreate,
|
| + FilePermissions::kWorldReadable));
|
| + MINIDUMP_EXCEPTION_INFORMATION minidump_exception_information;
|
| + ExceptionInformation exception_information;
|
| + ProcessReaderWin process_reader;
|
| + if (!process_reader.Initialize(process, ProcessSuspensionState::kSuspended))
|
| + return false;
|
| + if (!process_reader.ReadMemory(exception_information_address,
|
| + sizeof(exception_information),
|
| + &exception_information)) {
|
| + LOG(WARNING) << "ReadMemory ExceptionInformation failed";
|
| + return false;
|
| + }
|
| + minidump_exception_information.ThreadId =
|
| + static_cast<DWORD>(process_snapshot.Exception()->ThreadID());
|
| + minidump_exception_information.ExceptionPointers =
|
| + reinterpret_cast<EXCEPTION_POINTERS*>(
|
| + exception_information.exception_pointers);
|
| + minidump_exception_information.ClientPointers = true;
|
| + MiniDumpWriteDump(process,
|
| + GetProcessId(process),
|
| + file.get(),
|
| + static_cast<MINIDUMP_TYPE>(MiniDumpWithFullMemory |
|
| + MiniDumpWithHandleData),
|
| + &minidump_exception_information,
|
| + nullptr,
|
| + nullptr);
|
| + // XXX XXX XXX
|
| +
|
| CrashpadInfoClientOptions client_options;
|
| process_snapshot.GetCrashpadOptions(&client_options);
|
| if (client_options.crashpad_handler_behavior != TriState::kDisabled) {
|
|
|