From 5ec998511c5ac8e0602fe3373f214fcc3ef33a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Susano=20Pinto?= Date: Wed, 13 May 2015 09:20:52 +0200 Subject: [PATCH] Windows utility to setTheadName to help debugging. R=juberti@google.com, mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/49919004 Cr-Commit-Position: refs/heads/master@{#9182} --- webrtc/base/win32.cc | 15 +++++++++++++++ webrtc/base/win32.h | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/webrtc/base/win32.cc b/webrtc/base/win32.cc index c1b55bf63e..fa7555992f 100644 --- a/webrtc/base/win32.cc +++ b/webrtc/base/win32.cc @@ -453,4 +453,19 @@ bool GetCurrentProcessIntegrityLevel(int* level) { } return ret; } + +void SetCurrentThreadName(const char* name) { + struct { + DWORD dwType; + LPCSTR szName; + DWORD dwThreadID; + DWORD dwFlags; + } threadname_info = {0x100, name, static_cast(-1), 0}; + + __try { + ::RaiseException(0x406D1388, 0, sizeof(threadname_info) / sizeof(DWORD), + reinterpret_cast(&threadname_info)); + } __except (EXCEPTION_EXECUTE_HANDLER) { + } +} } // namespace rtc diff --git a/webrtc/base/win32.h b/webrtc/base/win32.h index 07e1e1ea51..a302c47a45 100644 --- a/webrtc/base/win32.h +++ b/webrtc/base/win32.h @@ -46,8 +46,6 @@ namespace rtc { const char* win32_inet_ntop(int af, const void *src, char* dst, socklen_t size); int win32_inet_pton(int af, const char* src, void *dst); -/////////////////////////////////////////////////////////////////////////////// - inline std::wstring ToUtf16(const char* utf8, size_t len) { int len16 = ::MultiByteToWideChar(CP_UTF8, 0, utf8, static_cast(len), NULL, 0); @@ -128,7 +126,8 @@ inline bool IsCurrentProcessLowIntegrity() { bool AdjustCurrentProcessPrivilege(const TCHAR* privilege, bool to_enable); -/////////////////////////////////////////////////////////////////////////////// +// Sets the current thread name for the windows debugger. +void SetCurrentThreadName(const char* name); } // namespace rtc