diff options
-rw-r--r-- | lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp index 19392e33017..0af0b56925b 100644 --- a/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp @@ -20,9 +20,10 @@ #include "ProcessWindowsLog.h" #include "TargetThreadWindows.h" -#if defined(_WIN64) +// TODO support _M_ARM and _M_ARM64 +#if defined(_M_AMD64) #include "x64/RegisterContextWindows_x64.h" -#else +#elif defined(_M_IX86) #include "x86/RegisterContextWindows_x86.h" #endif @@ -66,24 +67,33 @@ TargetThreadWindows::CreateRegisterContextForFrame(StackFrame *frame) { if (!m_thread_reg_ctx_sp) { ArchSpec arch = HostInfo::GetArchitecture(); switch (arch.GetMachine()) { + case llvm::Triple::arm: + case llvm::Triple::thumb: + LLDB_LOG(log, "debugging ARM (NT) targets is currently unsupported"); + break; + + case llvm::Triple::aarch64: + LLDB_LOG(log, "debugging ARM64 targets is currently unsupported"); + break; + case llvm::Triple::x86: -#if defined(_WIN64) - // FIXME: This is a Wow64 process, create a RegisterContextWindows_Wow64 - LLDB_LOG(log, "This is a Wow64 process, we should create a " - "RegisterContextWindows_Wow64, but we don't."); -#else +#if defined(_M_IX86) m_thread_reg_ctx_sp.reset( new RegisterContextWindows_x86(*this, concrete_frame_idx)); +#else + LLDB_LOG(log, "debugging foreign targets is currently unsupported"); #endif break; + case llvm::Triple::x86_64: -#if defined(_WIN64) +#if defined(_M_AMD64) m_thread_reg_ctx_sp.reset( new RegisterContextWindows_x64(*this, concrete_frame_idx)); #else - LLDB_LOG(log, "LLDB is 32-bit, but the target process is 64-bit."); + LLDB_LOG(log, "debugging foreign targets is currently unsupported"); #endif - LLVM_FALLTHROUGH; + break; + default: break; } |