Print ARM register values in minidump_stackwalk. r=nealsid at http://breakpad.appspot.com/57002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@516 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
ted.mielczarek 2010-02-09 12:16:45 +00:00
parent f480ba1169
commit bad560bb69

View File

@ -70,6 +70,7 @@ using google_breakpad::StackFramePPC;
using google_breakpad::StackFrameSPARC; using google_breakpad::StackFrameSPARC;
using google_breakpad::StackFrameX86; using google_breakpad::StackFrameX86;
using google_breakpad::StackFrameAMD64; using google_breakpad::StackFrameAMD64;
using google_breakpad::StackFrameARM;
// Separator character for machine readable output. // Separator character for machine readable output.
static const char kOutputSeparator = '|'; static const char kOutputSeparator = '|';
@ -211,6 +212,16 @@ static void PrintStack(const CallStack *stack, const string &cpu) {
sequence = PrintRegister("fp", frame_sparc->context.g_r[30], sequence); sequence = PrintRegister("fp", frame_sparc->context.g_r[30], sequence);
if (frame_sparc->context_validity & StackFrameSPARC::CONTEXT_VALID_PC) if (frame_sparc->context_validity & StackFrameSPARC::CONTEXT_VALID_PC)
sequence = PrintRegister("pc", frame_sparc->context.pc, sequence); sequence = PrintRegister("pc", frame_sparc->context.pc, sequence);
} else if (cpu == "arm") {
const StackFrameARM *frame_arm =
reinterpret_cast<const StackFrameARM*>(frame);
if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R13)
sequence = PrintRegister("r13", frame_arm->context.iregs[13], sequence);
if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R14)
sequence = PrintRegister("r14", frame_arm->context.iregs[14], sequence);
if (frame_arm->context_validity & StackFrameARM::CONTEXT_VALID_R15)
sequence = PrintRegister("r15", frame_arm->context.iregs[15], sequence);
} }
printf("\n"); printf("\n");
} }