Index: snapshot/win/exception_snapshot_win.cc |
diff --git a/snapshot/win/exception_snapshot_win.cc b/snapshot/win/exception_snapshot_win.cc |
index 07b1c8eaae1d139fdca8ce6add3db8100242ef1e..89233d5a0fe6b9bc32381c3f3af446012c6ba445 100644 |
--- a/snapshot/win/exception_snapshot_win.cc |
+++ b/snapshot/win/exception_snapshot_win.cc |
@@ -14,7 +14,10 @@ |
#include "snapshot/win/exception_snapshot_win.h" |
+#include "snapshot/memory_snapshot.h" |
+#include "snapshot/win/capture_context_memory.h" |
#include "snapshot/win/cpu_context_win.h" |
+#include "snapshot/win/memory_snapshot_win.h" |
#include "snapshot/win/process_reader_win.h" |
#include "util/win/nt_internals.h" |
@@ -86,6 +89,8 @@ bool ExceptionSnapshotWin::Initialize(ProcessReaderWin* process_reader, |
InitializeX86Context(context_record, context_.x86); |
} |
+ CaptureMemoryPointedToByContext(context_, process_reader, &extra_memory_); |
+ |
INITIALIZATION_STATE_SET_VALID(initialized_); |
return true; |
} |
@@ -120,6 +125,15 @@ const std::vector<uint64_t>& ExceptionSnapshotWin::Codes() const { |
return codes_; |
} |
+std::vector<const MemorySnapshot*> ExceptionSnapshotWin::ExtraMemory() const { |
+ INITIALIZATION_STATE_DCHECK_VALID(initialized_); |
+ std::vector<const MemorySnapshot*> result; |
+ result.reserve(extra_memory_.size()); |
+ for (const auto& em : extra_memory_) |
+ result.push_back(em); |
+ return result; |
+} |
+ |
template <class ExceptionRecordType, |
class ExceptionPointersType, |
class ContextType> |