aboutsummaryrefslogtreecommitdiff
path: root/src/google_breakpad/processor
diff options
context:
space:
mode:
authorJoshua Peraza <jperaza@chromium.org>2018-08-01 10:48:27 -0700
committerJoshua Peraza <jperaza@chromium.org>2018-08-01 19:27:25 +0000
commit88d8114fda3e4a7292654bd6ac0c34d6c88a8121 (patch)
tree7e7c5e65771736eb81e2bef56269eea0cba6953d /src/google_breakpad/processor
parentRename MDRawContextARM64 and its context flags (diff)
downloadbreakpad-88d8114fda3e4a7292654bd6ac0c34d6c88a8121.tar.xz
Define and use a a new MDRawContextARM64
This struct matches the layout defined by Microsoft and replaces Breakpad's MDRawContextARM64_Old. This CL updates the processor to understand either the old or new structs, but clients continue to write the old structs. Change-Id: I8dedd9ddb2ec083b802723b9ac87beb18d98edbd Reviewed-on: https://chromium-review.googlesource.com/1155938 Reviewed-by: Mark Mentovai <mark@chromium.org>
Diffstat (limited to 'src/google_breakpad/processor')
-rw-r--r--src/google_breakpad/processor/dump_context.h6
-rw-r--r--src/google_breakpad/processor/microdump.h2
-rw-r--r--src/google_breakpad/processor/minidump.h5
-rw-r--r--src/google_breakpad/processor/stack_frame_cpu.h2
4 files changed, 10 insertions, 5 deletions
diff --git a/src/google_breakpad/processor/dump_context.h b/src/google_breakpad/processor/dump_context.h
index 455115e5..df80bf7e 100644
--- a/src/google_breakpad/processor/dump_context.h
+++ b/src/google_breakpad/processor/dump_context.h
@@ -56,7 +56,7 @@ class DumpContext : public DumpObject {
// context data does not match the CPU type or does not exist, returns NULL.
const MDRawContextAMD64* GetContextAMD64() const;
const MDRawContextARM* GetContextARM() const;
- const MDRawContextARM64_Old* GetContextARM64() const;
+ const MDRawContextARM64* GetContextARM64() const;
const MDRawContextMIPS* GetContextMIPS() const;
const MDRawContextPPC* GetContextPPC() const;
const MDRawContextPPC64* GetContextPPC64() const;
@@ -85,7 +85,7 @@ class DumpContext : public DumpObject {
void SetContextAMD64(MDRawContextAMD64* amd64);
void SetContextSPARC(MDRawContextSPARC* ctx_sparc);
void SetContextARM(MDRawContextARM* arm);
- void SetContextARM64(MDRawContextARM64_Old* arm64);
+ void SetContextARM64(MDRawContextARM64* arm64);
void SetContextMIPS(MDRawContextMIPS* ctx_mips);
// Free the CPU-specific context structure.
@@ -103,7 +103,7 @@ class DumpContext : public DumpObject {
// so variables can NOT be named as sparc
MDRawContextSPARC* ctx_sparc;
MDRawContextARM* arm;
- MDRawContextARM64_Old* arm64_old;
+ MDRawContextARM64* arm64;
MDRawContextMIPS* ctx_mips;
} context_;
diff --git a/src/google_breakpad/processor/microdump.h b/src/google_breakpad/processor/microdump.h
index 496f83ce..02ebdcd7 100644
--- a/src/google_breakpad/processor/microdump.h
+++ b/src/google_breakpad/processor/microdump.h
@@ -68,7 +68,7 @@ class MicrodumpModules : public BasicCodeModules {
class MicrodumpContext : public DumpContext {
public:
virtual void SetContextARM(MDRawContextARM* arm);
- virtual void SetContextARM64(MDRawContextARM64_Old* arm64);
+ virtual void SetContextARM64(MDRawContextARM64* arm64);
virtual void SetContextX86(MDRawContextX86* x86);
virtual void SetContextMIPS(MDRawContextMIPS* mips32);
virtual void SetContextMIPS64(MDRawContextMIPS* mips64);
diff --git a/src/google_breakpad/processor/minidump.h b/src/google_breakpad/processor/minidump.h
index 1ad513df..febdaeb7 100644
--- a/src/google_breakpad/processor/minidump.h
+++ b/src/google_breakpad/processor/minidump.h
@@ -1260,6 +1260,8 @@ class Minidump {
bool swap() const { return valid_ ? swap_ : false; }
+ bool is_big_endian() const { return valid_ ? is_big_endian_ : false; }
+
// Print a human-readable representation of the object to stdout.
void Print();
@@ -1325,6 +1327,9 @@ class Minidump {
// same-endian, this will be false.
bool swap_;
+ // true if the minidump was produced by a big-endian cpu.
+ bool is_big_endian_;
+
// Validity of the Minidump structure, false immediately after
// construction or after a failed Read(); true following a successful
// Read().
diff --git a/src/google_breakpad/processor/stack_frame_cpu.h b/src/google_breakpad/processor/stack_frame_cpu.h
index 3b2551b5..dc5d8ae6 100644
--- a/src/google_breakpad/processor/stack_frame_cpu.h
+++ b/src/google_breakpad/processor/stack_frame_cpu.h
@@ -327,7 +327,7 @@ struct StackFrameARM64 : public StackFrame {
// stack. In other frames, the values of nonvolatile registers may be
// present, given sufficient debugging information. Refer to
// context_validity.
- MDRawContextARM64_Old context;
+ MDRawContextARM64 context;
// For each register in context whose value has been recovered, we set
// the corresponding CONTEXT_VALID_ bit in context_validity.