[compiler-rt] 885275b - [Fuzzer] SetThreadName implementation for Windows

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 27 18:10:23 PDT 2023


Author: David CARLIER
Date: 2023-07-27T18:10:17-07:00
New Revision: 885275bff21512fca5dcdaf1b3a30c62dcc585e6

URL: https://github.com/llvm/llvm-project/commit/885275bff21512fca5dcdaf1b3a30c62dcc585e6
DIFF: https://github.com/llvm/llvm-project/commit/885275bff21512fca5dcdaf1b3a30c62dcc585e6.diff

LOG: [Fuzzer] SetThreadName implementation for Windows

Api available since Windows Server 2016/Windows 10 1607

Reviewed By: vitalybuka

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

Added: 
    

Modified: 
    compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp b/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
index 71770166805f78..71cdeeba414be5 100644
--- a/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
+++ b/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
@@ -234,8 +234,14 @@ size_t PageSize() {
 }
 
 void SetThreadName(std::thread &thread, const std::string &name) {
-  // TODO ?
-  // to UTF-8 then SetThreadDescription ?
+  auto sz =
+      MultiByteToWideChar(CP_UTF8, 0, name.data(), name.size(), nullptr, 0);
+  std::wstring wname(sz);
+  if (sz == MultiByteToWideChar(CP_UTF8, 0, name.data(), name.size(), &wname[0],
+                                sz) > 0) {
+    wname.resize(sz - 1);
+    (void)SetThreadDescription(thread.native_handle(), wname.c_str());
+  }
 }
 
 } // namespace fuzzer


        


More information about the llvm-commits mailing list