aboutsummaryrefslogtreecommitdiff
path: root/src/processor/dump_context.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor/dump_context.cc')
-rw-r--r--src/processor/dump_context.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/processor/dump_context.cc b/src/processor/dump_context.cc
index 1c10b955..33b02cb6 100644
--- a/src/processor/dump_context.cc
+++ b/src/processor/dump_context.cc
@@ -131,7 +131,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;
}
@@ -172,6 +173,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:
@@ -215,6 +217,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:
@@ -292,6 +295,7 @@ void DumpContext::FreeContext() {
break;
case MD_CONTEXT_MIPS:
+ case MD_CONTEXT_MIPS64:
delete context_.ctx_mips;
break;
@@ -598,7 +602,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",