| Index: snapshot/win/process_snapshot_win.cc
|
| diff --git a/snapshot/win/process_snapshot_win.cc b/snapshot/win/process_snapshot_win.cc
|
| index cb0500ab4ac032ef7f1a730c613c57039d67af5d..cb0c0d3abf979804cdc99a582ca7974f8171e4ac 100644
|
| --- a/snapshot/win/process_snapshot_win.cc
|
| +++ b/snapshot/win/process_snapshot_win.cc
|
| @@ -16,6 +16,7 @@
|
|
|
| #include "base/logging.h"
|
| #include "snapshot/win/module_snapshot_win.h"
|
| +#include "util/win/registration_protocol_win.h"
|
| #include "util/win/time.h"
|
|
|
| namespace crashpad {
|
| @@ -55,14 +56,22 @@ bool ProcessSnapshotWin::Initialize(HANDLE process) {
|
| }
|
|
|
| bool ProcessSnapshotWin::InitializeException(
|
| - DWORD thread_id,
|
| - WinVMAddress exception_pointers) {
|
| + WinVMAddress exception_information_address) {
|
| INITIALIZATION_STATE_DCHECK_VALID(initialized_);
|
| DCHECK(!exception_);
|
|
|
| + ExceptionInformation exception_information;
|
| + if (!process_reader_.ReadMemory(exception_information_address,
|
| + sizeof(exception_information),
|
| + &exception_information)) {
|
| + LOG(WARNING) << "ReadMemory ExceptionInformation failed";
|
| + return false;
|
| + }
|
| +
|
| exception_.reset(new internal::ExceptionSnapshotWin());
|
| - if (!exception_->Initialize(
|
| - &process_reader_, thread_id, exception_pointers)) {
|
| + if (!exception_->Initialize(&process_reader_,
|
| + exception_information.thread_id,
|
| + exception_information.exception_pointers)) {
|
| exception_.reset();
|
| return false;
|
| }
|
|
|