diff options
Diffstat (limited to 'lldb/source/Host/windows/ThisThread.cpp')
-rw-r--r-- | lldb/source/Host/windows/ThisThread.cpp | 57 |
1 files changed, 27 insertions, 30 deletions
diff --git a/lldb/source/Host/windows/ThisThread.cpp b/lldb/source/Host/windows/ThisThread.cpp index bcd5b8d1c1d..8db12f05b0b 100644 --- a/lldb/source/Host/windows/ThisThread.cpp +++ b/lldb/source/Host/windows/ThisThread.cpp @@ -9,8 +9,8 @@ #include "lldb/Core/Error.h" -#include "lldb/Host/windows/windows.h" #include "lldb/Host/ThisThread.h" +#include "lldb/Host/windows/windows.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallVector.h" @@ -20,47 +20,44 @@ using namespace lldb_private; #if defined(_MSC_VER) && !defined(__clang__) -namespace -{ +namespace { static const DWORD MS_VC_EXCEPTION = 0x406D1388; #pragma pack(push, 8) -struct THREADNAME_INFO -{ - DWORD dwType; // Must be 0x1000. - LPCSTR szName; // Pointer to thread name - DWORD dwThreadId; // Thread ID (-1 == current thread) - DWORD dwFlags; // Reserved. Do not use. +struct THREADNAME_INFO { + DWORD dwType; // Must be 0x1000. + LPCSTR szName; // Pointer to thread name + DWORD dwThreadId; // Thread ID (-1 == current thread) + DWORD dwFlags; // Reserved. Do not use. }; #pragma pack(pop) } #endif -void -ThisThread::SetName(llvm::StringRef name) -{ -// Other compilers don't yet support SEH, so we can only set the thread if compiling with MSVC. +void ThisThread::SetName(llvm::StringRef name) { +// Other compilers don't yet support SEH, so we can only set the thread if +// compiling with MSVC. // TODO(zturner): Once clang-cl supports SEH, relax this conditional. #if defined(_MSC_VER) && !defined(__clang__) - THREADNAME_INFO info; - info.dwType = 0x1000; - info.szName = name.data(); - info.dwThreadId = ::GetCurrentThreadId(); - info.dwFlags = 0; - - __try { - ::RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR *)&info); - } - __except(EXCEPTION_EXECUTE_HANDLER) {} + THREADNAME_INFO info; + info.dwType = 0x1000; + info.szName = name.data(); + info.dwThreadId = ::GetCurrentThreadId(); + info.dwFlags = 0; + + __try { + ::RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), + (ULONG_PTR *)&info); + } __except (EXCEPTION_EXECUTE_HANDLER) { + } #endif } -void -ThisThread::GetName(llvm::SmallVectorImpl<char> &name) -{ - // Getting the thread name is not supported on Windows. - // TODO(zturner): In SetName(), make a TLS entry that contains the thread's name, and in this function - // try to extract that TLS entry. - name.clear(); +void ThisThread::GetName(llvm::SmallVectorImpl<char> &name) { + // Getting the thread name is not supported on Windows. + // TODO(zturner): In SetName(), make a TLS entry that contains the thread's + // name, and in this function + // try to extract that TLS entry. + name.clear(); } |