Index: runtime/vm/signal_handler_android.cc |
diff --git a/runtime/vm/signal_handler_android.cc b/runtime/vm/signal_handler_android.cc |
index ff468b6fa4a0fe1f36e853efcc77a780eef92afa..d8ea14e0ae803ef8d3525fb2f6347d52b488794e 100644 |
--- a/runtime/vm/signal_handler_android.cc |
+++ b/runtime/vm/signal_handler_android.cc |
@@ -66,6 +66,20 @@ uintptr_t SignalHandler::GetDartStackPointer(const mcontext_t& mcontext) { |
} |
+uintptr_t SignalHandler::GetLinkRegister(const mcontext_t& mcontext) { |
+ uintptr_t lr = 0; |
+#if defined(TARGET_ARCH_ARM) |
+ lr = static_cast<uintptr_t>(mcontext.arm_lr); |
+#elif defined(TARGET_ARCH_ARM64) |
+ lr = static_cast<uintptr_t>(mcontext.regs[30]); |
+ UNIMPLEMENTED(); |
+#else |
+ UNIMPLEMENTED(); |
+#endif // TARGET_ARCH_... |
+ return lr; |
+} |
+ |
+ |
void SignalHandler::Install(SignalAction action) { |
struct sigaction act; |
memset(&act, 0, sizeof(act)); |