aboutsummaryrefslogtreecommitdiff
path: root/src/core/arm/arm_interface.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-12-29 22:58:13 -0500
committerGitHub <noreply@github.com>2018-12-29 22:58:13 -0500
commit331c252509aa6c7712d983b388ba3533d3047df1 (patch)
treebdffbe558bab81adac706ed7ead2e6b91ed5a394 /src/core/arm/arm_interface.h
parentf80229b67671f87d3adcd3bcfc7b1fa14ee1eda3 (diff)
parent22d4e106642ac9d6a0dabc700c4dcd47be08ff41 (diff)
Merge pull request #1847 from ogniK5377/backtrace-break
Print backtrace on svcBreak
Diffstat (limited to 'src/core/arm/arm_interface.h')
-rw-r--r--src/core/arm/arm_interface.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h
index 59da33f30..91d2b0f81 100644
--- a/src/core/arm/arm_interface.h
+++ b/src/core/arm/arm_interface.h
@@ -141,6 +141,14 @@ public:
/// Prepare core for thread reschedule (if needed to correctly handle state)
virtual void PrepareReschedule() = 0;
+
+ /// fp (= r29) points to the last frame record.
+ /// Note that this is the frame record for the *previous* frame, not the current one.
+ /// Note we need to subtract 4 from our last read to get the proper address
+ /// Frame records are two words long:
+ /// fp+0 : pointer to previous frame record
+ /// fp+8 : value of lr for frame
+ void LogBacktrace();
};
} // namespace Core