Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1096)

Unified Diff: third_party/crashpad/crashpad/minidump/minidump_context_writer.cc

Issue 2705373005: Revert of Update Crashpad to 6da9708e7cc93e2e1772439d51646e47583cb225 (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc b/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
index c6c29d969e1754501531417ad1e5b997a3277f50..4d3bf8a459d3345c5f24915bb6d048d8d81ce99b 100644
--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
+++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
@@ -14,8 +14,6 @@
#include "minidump/minidump_context_writer.h"
-#include <windows.h>
-#include <dbghelp.h>
#include <stdint.h>
#include <string.h>
@@ -26,28 +24,6 @@
namespace crashpad {
-namespace {
-
-// Sanity-check complex structures to ensure interoperability.
-static_assert(sizeof(MinidumpContextX86) == 716, "MinidumpContextX86 size");
-static_assert(sizeof(MinidumpContextAMD64) == 1232,
- "MinidumpContextAMD64 size");
-
-// These structures can also be checked against definitions in the Windows SDK.
-#if defined(OS_WIN)
-#if defined(ARCH_CPU_X86_FAMILY)
-static_assert(sizeof(MinidumpContextX86) == sizeof(WOW64_CONTEXT),
- "WOW64_CONTEXT size");
-#if defined(ARCH_CPU_X86)
-static_assert(sizeof(MinidumpContextX86) == sizeof(CONTEXT), "CONTEXT size");
-#elif defined(ARCH_CPU_X86_64)
-static_assert(sizeof(MinidumpContextAMD64) == sizeof(CONTEXT), "CONTEXT size");
-#endif
-#endif // ARCH_CPU_X86_FAMILY
-#endif // OS_WIN
-
-} // namespace
-
MinidumpContextWriter::~MinidumpContextWriter() {
}
@@ -113,11 +89,28 @@ void MinidumpContextX86Writer::InitializeFromSnapshot(
context_.dr6 = context_snapshot->dr6;
context_.dr7 = context_snapshot->dr7;
- // The contents of context_.fsave effectively alias everything in
- // context_.fxsave that’s related to x87 FPU state. context_.fsave doesn’t
- // carry state specific to SSE (or later), such as mxcsr and the xmm
+ // The contents of context_.float_save effectively alias everything in
+ // context_.fxsave that’s related to x87 FPU state. context_.float_save
+ // doesn’t carry state specific to SSE (or later), such as mxcsr and the xmm
// registers.
- CPUContextX86::FxsaveToFsave(context_snapshot->fxsave, &context_.fsave);
+ context_.float_save.control_word = context_snapshot->fxsave.fcw;
+ context_.float_save.status_word = context_snapshot->fxsave.fsw;
+ context_.float_save.tag_word =
+ CPUContextX86::FxsaveToFsaveTagWord(context_snapshot->fxsave.fsw,
+ context_snapshot->fxsave.ftw,
+ context_snapshot->fxsave.st_mm);
+ context_.float_save.error_offset = context_snapshot->fxsave.fpu_ip;
+ context_.float_save.error_selector = context_snapshot->fxsave.fpu_cs;
+ context_.float_save.data_offset = context_snapshot->fxsave.fpu_dp;
+ context_.float_save.data_selector = context_snapshot->fxsave.fpu_ds;
+
+ for (size_t index = 0, offset = 0;
+ index < arraysize(context_snapshot->fxsave.st_mm);
+ offset += sizeof(context_snapshot->fxsave.st_mm[index].st), ++index) {
+ memcpy(&context_.float_save.register_area[offset],
+ &context_snapshot->fxsave.st_mm[index].st,
+ sizeof(context_snapshot->fxsave.st_mm[index].st));
+ }
context_.gs = context_snapshot->gs;
context_.fs = context_snapshot->fs;

Powered by Google App Engine
This is Rietveld 408576698