llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Charles Zablit (charles-zablit) <details> <summary>Changes</summary> This patch improves the detection of `python3x.dll`. `SearchPathW` does not account for `SetDllDirectoryW`. Therefore, when manually adding `python3x.dll` to the search path, `SearchPathW` will still return that it has not been found, resulting in a false negative. This patch ensures that the driver uses the same mechanism as the loader to attempt to load `python3x.dll` using `LoadLibraryW`. --- Full diff: https://github.com/llvm/llvm-project/pull/168864.diff 1 Files Affected: - (modified) lldb/tools/driver/Driver.cpp (+6-7) ``````````diff diff --git a/lldb/tools/driver/Driver.cpp b/lldb/tools/driver/Driver.cpp index bebf1a70d50e9..33cce42696372 100644 --- a/lldb/tools/driver/Driver.cpp +++ b/lldb/tools/driver/Driver.cpp @@ -477,18 +477,17 @@ bool AddPythonDLLToSearchPath() { #endif #ifdef LLDB_PYTHON_RUNTIME_LIBRARY_FILENAME -/// Returns whether `python3x.dll` is in the DLL search path. +/// Returns true if `python3x.dll` can be loaded. bool IsPythonDLLInPath() { #define WIDEN2(x) L##x #define WIDEN(x) WIDEN2(x) - WCHAR foundPath[MAX_PATH]; - DWORD result = - SearchPathW(nullptr, WIDEN(LLDB_PYTHON_RUNTIME_LIBRARY_FILENAME), nullptr, - MAX_PATH, foundPath, nullptr); + HMODULE h = LoadLibraryW(WIDEN(LLDB_PYTHON_RUNTIME_LIBRARY_FILENAME)); + if (!h) + return false; + FreeLibrary(h); + return true; #undef WIDEN2 #undef WIDEN - - return result > 0; } #endif `````````` </details> https://github.com/llvm/llvm-project/pull/168864 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
