summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2019-10-15 08:31:52 +0000
committerMartin Storsjo <martin@martin.st>2019-10-15 08:31:52 +0000
commitb1f6ba2a2ecdf253c1ee2f2a04156eba78cfe3fa (patch)
tree12c30dbf9168c5c60af7e895ff542d1d4273b22b /lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp
parentda92ed8365aa5506c4991b9075f57aeeb7f6f70a (diff)
[LLDB] [Windows] Initial support for ARM64 register contexts
Differential Revision: https://reviews.llvm.org/D67954 llvm-svn: 374866
Diffstat (limited to 'lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp')
-rw-r--r--lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp
index 8fca982da14e..416abed88230 100644
--- a/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp
+++ b/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp
@@ -20,11 +20,13 @@
#include "ProcessWindowsLog.h"
#include "TargetThreadWindows.h"
-// TODO support _M_ARM and _M_ARM64
+// TODO support _M_ARM
#if defined(__x86_64__) || defined(_M_AMD64)
#include "x64/RegisterContextWindows_x64.h"
#elif defined(__i386__) || defined(_M_IX86)
#include "x86/RegisterContextWindows_x86.h"
+#elif defined(__aarch64__) || defined(_M_ARM64)
+#include "arm64/RegisterContextWindows_arm64.h"
#endif
using namespace lldb;
@@ -73,7 +75,12 @@ TargetThreadWindows::CreateRegisterContextForFrame(StackFrame *frame) {
break;
case llvm::Triple::aarch64:
- LLDB_LOG(log, "debugging ARM64 targets is currently unsupported");
+#if defined(__aarch64__) || defined(_M_ARM64)
+ m_thread_reg_ctx_sp.reset(
+ new RegisterContextWindows_arm64(*this, concrete_frame_idx));
+#else
+ LLDB_LOG(log, "debugging foreign targets is currently unsupported");
+#endif
break;
case llvm::Triple::x86: