Index: third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win.h |
diff --git a/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win.h b/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win.h |
index 3e66dd2612b1228b4b66f1b1da25f17500c1a50a..8ff7d3811abad33a30815ccd91853a5a316bbfd6 100644 |
--- a/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win.h |
+++ b/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win.h |
@@ -22,6 +22,7 @@ |
#include "build/build_config.h" |
#include "snapshot/cpu_context.h" |
#include "snapshot/exception_snapshot.h" |
+#include "snapshot/win/thread_snapshot_win.h" |
#include "util/misc/initialization_state_dcheck.h" |
#include "util/stdlib/pointer_container.h" |
#include "util/win/address_types.h" |
@@ -35,6 +36,13 @@ namespace internal { |
class MemorySnapshotWin; |
+#if defined(ARCH_CPU_X86_FAMILY) |
+union CPUContextUnion { |
+ CPUContextX86 x86; |
+ CPUContextX86_64 x86_64; |
+}; |
+#endif |
+ |
class ExceptionSnapshotWin final : public ExceptionSnapshot { |
public: |
ExceptionSnapshotWin(); |
@@ -53,7 +61,8 @@ class ExceptionSnapshotWin final : public ExceptionSnapshot { |
//! an appropriate message logged. |
bool Initialize(ProcessReaderWin* process_reader, |
DWORD thread_id, |
- WinVMAddress exception_pointers); |
+ WinVMAddress exception_pointers, |
+ const PointerVector<internal::ThreadSnapshotWin>& threads); |
// ExceptionSnapshot: |
@@ -69,15 +78,16 @@ class ExceptionSnapshotWin final : public ExceptionSnapshot { |
template <class ExceptionRecordType, |
class ExceptionPointersType, |
class ContextType> |
- bool InitializeFromExceptionPointers(const ProcessReaderWin& process_reader, |
- WinVMAddress exception_pointers_address, |
- ContextType* context_record); |
+ bool InitializeFromExceptionPointers( |
+ const ProcessReaderWin& process_reader, |
+ WinVMAddress exception_pointers_address, |
+ const PointerVector<internal::ThreadSnapshotWin>& threads, |
+ void (*native_to_cpu_context)(const ContextType& context_record, |
+ CPUContext* context, |
+ CPUContextUnion* context_union)); |
#if defined(ARCH_CPU_X86_FAMILY) |
- union { |
- CPUContextX86 x86; |
- CPUContextX86_64 x86_64; |
- } context_union_; |
+ CPUContextUnion context_union_; |
#endif |
CPUContext context_; |
std::vector<uint64_t> codes_; |