| Index: snapshot/win/process_snapshot_win.cc
|
| diff --git a/snapshot/win/process_snapshot_win.cc b/snapshot/win/process_snapshot_win.cc
|
| index b25e8caa1079f2267babe3e53543020338af56e2..0b88772c42ed6f6668b460202a78037f2b1a6cef 100644
|
| --- a/snapshot/win/process_snapshot_win.cc
|
| +++ b/snapshot/win/process_snapshot_win.cc
|
| @@ -24,7 +24,7 @@ ProcessSnapshotWin::ProcessSnapshotWin()
|
| system_(),
|
| threads_(),
|
| modules_(),
|
| - // TODO(scottmg): exception_(),
|
| + exception_(),
|
| process_reader_(),
|
| report_id_(),
|
| client_id_(),
|
| @@ -53,6 +53,21 @@ bool ProcessSnapshotWin::Initialize(HANDLE process) {
|
| return true;
|
| }
|
|
|
| +bool ProcessSnapshotWin::InitializeException(
|
| + HANDLE thread,
|
| + EXCEPTION_POINTERS* exception_pointers) {
|
| + INITIALIZATION_STATE_DCHECK_VALID(initialized_);
|
| + DCHECK(!exception_);
|
| +
|
| + exception_.reset(new internal::ExceptionSnapshotWin());
|
| + if (!exception_->Initialize(&process_reader_, thread, exception_pointers)) {
|
| + exception_.reset();
|
| + return false;
|
| + }
|
| +
|
| + return true;
|
| +}
|
| +
|
| void ProcessSnapshotWin::GetCrashpadOptions(
|
| CrashpadInfoClientOptions* options) {
|
| INITIALIZATION_STATE_DCHECK_VALID(initialized_);
|
| @@ -149,8 +164,7 @@ std::vector<const ModuleSnapshot*> ProcessSnapshotWin::Modules() const {
|
| }
|
|
|
| const ExceptionSnapshot* ProcessSnapshotWin::Exception() const {
|
| - CHECK(false) << "TODO(scottmg): Exception()";
|
| - return nullptr;
|
| + return exception_.get();
|
| }
|
|
|
| void ProcessSnapshotWin::InitializeThreads() {
|
|
|