[ProcessWindows] Choose a register context file by preprocessor

Replaced Cmake option based check with the preprocessor macro as CMAKE_SYSTEM_PROCESSOR doesn't work as expected on Windows.

Fixes llvm.org/pr42724

Differential Revision: https://reviews.llvm.org/D65409

llvm-svn: 367414
This commit is contained in:
Tatyana Krasnukha 2019-07-31 12:00:30 +00:00
parent e84f78412b
commit e98b4188dc
5 changed files with 19 additions and 10 deletions

View File

@ -7,6 +7,9 @@ add_lldb_library(lldbPluginProcessWindowsCommon PLUGIN
ProcessWindowsLog.cpp ProcessWindowsLog.cpp
RegisterContextWindows.cpp RegisterContextWindows.cpp
TargetThreadWindows.cpp TargetThreadWindows.cpp
x64/RegisterContextWindows_x64.cpp
x86/RegisterContextWindows_x86.cpp
# TODO add support for ARM (NT) and ARM64
LINK_LIBS LINK_LIBS
lldbCore lldbCore
@ -20,13 +23,3 @@ add_lldb_library(lldbPluginProcessWindowsCommon PLUGIN
LINK_COMPONENTS LINK_COMPONENTS
Support Support
) )
# TODO add support for ARM (NT) and ARM64
# TODO build these unconditionally as we cannot do cross-debugging or WoW
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64")
target_sources(lldbPluginProcessWindowsCommon PRIVATE
x64/RegisterContextWindows_x64.cpp)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i?86|X86")
target_sources(lldbPluginProcessWindowsCommon PRIVATE
x86/RegisterContextWindows_x86.cpp)
endif()

View File

@ -6,6 +6,8 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if defined(__x86_64__) || defined(__amd64__) || defined(_M_X64) || defined(_M_AMD64)
#include "lldb/Host/windows/HostThreadWindows.h" #include "lldb/Host/windows/HostThreadWindows.h"
#include "lldb/Host/windows/windows.h" #include "lldb/Host/windows/windows.h"
#include "lldb/Utility/RegisterValue.h" #include "lldb/Utility/RegisterValue.h"
@ -534,3 +536,5 @@ bool RegisterContextWindows_x64::WriteRegister(const RegisterInfo *reg_info,
return ::SetThreadContext( return ::SetThreadContext(
wthread.GetHostThread().GetNativeThread().GetSystemHandle(), &m_context); wthread.GetHostThread().GetNativeThread().GetSystemHandle(), &m_context);
} }
#endif // defined(__x86_64__) || defined(__amd64__) || defined(_M_X64) || defined(_M_AMD64)

View File

@ -9,6 +9,8 @@
#ifndef liblldb_RegisterContextWindows_x64_H_ #ifndef liblldb_RegisterContextWindows_x64_H_
#define liblldb_RegisterContextWindows_x64_H_ #define liblldb_RegisterContextWindows_x64_H_
#if defined(__x86_64__) || defined(__amd64__) || defined(_M_X64) || defined(_M_AMD64)
#include "RegisterContextWindows.h" #include "RegisterContextWindows.h"
#include "lldb/lldb-forward.h" #include "lldb/lldb-forward.h"
@ -40,4 +42,6 @@ public:
}; };
} }
#endif // defined(__x86_64__) || defined(__amd64__) || defined(_M_X64) || defined(_M_AMD64)
#endif // #ifndef liblldb_RegisterContextWindows_x64_H_ #endif // #ifndef liblldb_RegisterContextWindows_x64_H_

View File

@ -6,6 +6,8 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#if defined(__i386__) || defined(_M_IX86)
#include "lldb/Host/windows/HostThreadWindows.h" #include "lldb/Host/windows/HostThreadWindows.h"
#include "lldb/Host/windows/windows.h" #include "lldb/Host/windows/windows.h"
#include "lldb/Utility/RegisterValue.h" #include "lldb/Utility/RegisterValue.h"
@ -282,3 +284,5 @@ bool RegisterContextWindows_x86::ReadRegisterHelper(
reg_value.SetUInt32(value); reg_value.SetUInt32(value);
return true; return true;
} }
#endif // defined(__i386__) || defined(_M_IX86)

View File

@ -9,6 +9,8 @@
#ifndef liblldb_RegisterContextWindows_x86_H_ #ifndef liblldb_RegisterContextWindows_x86_H_
#define liblldb_RegisterContextWindows_x86_H_ #define liblldb_RegisterContextWindows_x86_H_
#if defined(__i386__) || defined(_M_IX86)
#include "RegisterContextWindows.h" #include "RegisterContextWindows.h"
#include "lldb/lldb-forward.h" #include "lldb/lldb-forward.h"
@ -44,4 +46,6 @@ private:
}; };
} }
#endif // defined(__i386__) || defined(_M_IX86)
#endif // #ifndef liblldb_RegisterContextWindows_x86_H_ #endif // #ifndef liblldb_RegisterContextWindows_x86_H_