================
@@ -175,3 +179,30 @@ Status TargetThreadWindows::DoResume() {
 
   return Status();
 }
+
+const char *TargetThreadWindows::GetName() {
+  Log *log = GetLog(LLDBLog::Thread);
+  HMODULE hModule = ::LoadLibraryW(L"Kernel32.dll");
+  if (hModule) {
+    auto GetThreadDescription =
+        reinterpret_cast<GetThreadDescriptionFunctionPtr>(
+            ::GetProcAddress(hModule, "GetThreadDescription"));
----------------
compnerd wrote:

If there is compatibility that we are concerned about, I think that we should 
consider falling back to more ... esoteric solutions.

```c++
__try {
  RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), 
(ULONG_PTR*)&info);  
} __except (EXCEPTION_EXECUTE_HANDLER) {
} 
```

Should be far more portable and is what VS also uses.  This is documented at 
https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2015/debugger/how-to-set-a-thread-name-in-native-code?view=vs-2015&redirectedfrom=MSDN.

I would be okay with also raising the requirements to a newer version of 
Windows as 1607 is RS1 which makes it more than 8 years old at this point.

https://github.com/llvm/llvm-project/pull/74731
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to