Browse Source

Merge pull request #1966 from lioncash/backtrace

arm_interface: Minor cleanup
nce_cpp
bunnei 7 years ago
committed by GitHub
parent
commit
79fe1a3513
  1. 13
      src/core/arm/arm_interface.cpp
  2. 2
      src/core/arm/arm_interface.h

13
src/core/arm/arm_interface.cpp

@ -2,19 +2,20 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "arm_interface.h"
#include "common/common_types.h" #include "common/common_types.h"
#include "common/logging/log.h" #include "common/logging/log.h"
#include "core/arm/arm_interface.h"
#include "core/memory.h" #include "core/memory.h"
namespace Core { namespace Core {
void ARM_Interface::LogBacktrace() {
void ARM_Interface::LogBacktrace() const {
VAddr fp = GetReg(29); VAddr fp = GetReg(29);
VAddr lr = GetReg(30); VAddr lr = GetReg(30);
VAddr sp = GetReg(13);
VAddr pc = GetPC();
const VAddr sp = GetReg(13);
const VAddr pc = GetPC();
LOG_ERROR(Core_ARM, "Backtrace, sp={:016X}, pc={:016X}", sp, pc); LOG_ERROR(Core_ARM, "Backtrace, sp={:016X}, pc={:016X}", sp, pc);
for (;;) {
while (true) {
LOG_ERROR(Core_ARM, "{:016X}", lr); LOG_ERROR(Core_ARM, "{:016X}", lr);
if (!fp) { if (!fp) {
break; break;
@ -23,4 +24,4 @@ void ARM_Interface::LogBacktrace() {
fp = Memory::Read64(fp); fp = Memory::Read64(fp);
} }
} }
}; // namespace Core
} // namespace Core

2
src/core/arm/arm_interface.h

@ -148,7 +148,7 @@ public:
/// Frame records are two words long: /// Frame records are two words long:
/// fp+0 : pointer to previous frame record /// fp+0 : pointer to previous frame record
/// fp+8 : value of lr for frame /// fp+8 : value of lr for frame
void LogBacktrace();
void LogBacktrace() const;
}; };
} // namespace Core } // namespace Core
Loading…
Cancel
Save