Index: src/processor/dump_context.cc |
diff --git a/src/processor/dump_context.cc b/src/processor/dump_context.cc |
index 49fb77b15fcade8bc406a1f154298be93d060792..2fb23e321387b8feee9148ac99daadf86924d537 100644 |
--- a/src/processor/dump_context.cc |
+++ b/src/processor/dump_context.cc |
@@ -134,7 +134,8 @@ const MDRawContextARM64* DumpContext::GetContextARM64() const { |
} |
const MDRawContextMIPS* DumpContext::GetContextMIPS() const { |
- if (GetContextCPU() != MD_CONTEXT_MIPS) { |
+ if ((GetContextCPU() != MD_CONTEXT_MIPS) && |
+ (GetContextCPU() != MD_CONTEXT_MIPS64)) { |
BPLOG(ERROR) << "DumpContext cannot get MIPS context"; |
return NULL; |
} |
@@ -175,6 +176,7 @@ bool DumpContext::GetInstructionPointer(uint64_t* ip) const { |
*ip = GetContextX86()->eip; |
break; |
case MD_CONTEXT_MIPS: |
+ case MD_CONTEXT_MIPS64: |
*ip = GetContextMIPS()->epc; |
break; |
default: |
@@ -218,6 +220,7 @@ bool DumpContext::GetStackPointer(uint64_t* sp) const { |
*sp = GetContextX86()->esp; |
break; |
case MD_CONTEXT_MIPS: |
+ case MD_CONTEXT_MIPS64: |
*sp = GetContextMIPS()->iregs[MD_CONTEXT_MIPS_REG_SP]; |
break; |
default: |
@@ -295,6 +298,7 @@ void DumpContext::FreeContext() { |
break; |
case MD_CONTEXT_MIPS: |
+ case MD_CONTEXT_MIPS64: |
delete context_.ctx_mips; |
break; |
@@ -601,7 +605,8 @@ void DumpContext::Print() { |
break; |
} |
- case MD_CONTEXT_MIPS: { |
+ case MD_CONTEXT_MIPS: |
+ case MD_CONTEXT_MIPS64: { |
const MDRawContextMIPS* context_mips = GetContextMIPS(); |
printf("MDRawContextMIPS\n"); |
printf(" context_flags = 0x%x\n", |