OLD | NEW |
1 // Copyright (c) 2010 Google Inc. | 1 // Copyright (c) 2010 Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 PrintRegister64("lr", frame_arm64->context.iregs[30], sequence); | 539 PrintRegister64("lr", frame_arm64->context.iregs[30], sequence); |
540 } | 540 } |
541 if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_SP) { | 541 if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_SP) { |
542 sequence = | 542 sequence = |
543 PrintRegister64("sp", frame_arm64->context.iregs[31], sequence); | 543 PrintRegister64("sp", frame_arm64->context.iregs[31], sequence); |
544 } | 544 } |
545 if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_PC) { | 545 if (frame_arm64->context_validity & StackFrameARM64::CONTEXT_VALID_PC) { |
546 sequence = | 546 sequence = |
547 PrintRegister64("pc", frame_arm64->context.iregs[32], sequence); | 547 PrintRegister64("pc", frame_arm64->context.iregs[32], sequence); |
548 } | 548 } |
549 } else if (cpu == "mips") { | 549 } else if ((cpu == "mips") || (cpu == "mips64")) { |
550 const StackFrameMIPS* frame_mips = | 550 const StackFrameMIPS* frame_mips = |
551 reinterpret_cast<const StackFrameMIPS*>(frame); | 551 reinterpret_cast<const StackFrameMIPS*>(frame); |
552 | 552 |
553 if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_GP) | 553 if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_GP) |
554 sequence = PrintRegister64("gp", | 554 sequence = PrintRegister64("gp", |
555 frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_GP], | 555 frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_GP], |
556 sequence); | 556 sequence); |
557 if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_SP) | 557 if (frame_mips->context_validity & StackFrameMIPS::CONTEXT_VALID_SP) |
558 sequence = PrintRegister64("sp", | 558 sequence = PrintRegister64("sp", |
559 frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_SP], | 559 frame_mips->context.iregs[MD_CONTEXT_MIPS_REG_SP], |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
920 for (int thread_index = 0; thread_index < thread_count; ++thread_index) { | 920 for (int thread_index = 0; thread_index < thread_count; ++thread_index) { |
921 if (thread_index != requesting_thread) { | 921 if (thread_index != requesting_thread) { |
922 // Don't print the crash thread again, it was already printed. | 922 // Don't print the crash thread again, it was already printed. |
923 PrintStackMachineReadable(thread_index, | 923 PrintStackMachineReadable(thread_index, |
924 process_state.threads()->at(thread_index)); | 924 process_state.threads()->at(thread_index)); |
925 } | 925 } |
926 } | 926 } |
927 } | 927 } |
928 | 928 |
929 } // namespace google_breakpad | 929 } // namespace google_breakpad |
OLD | NEW |