From 04de4d1276be73a9ff20c89a6a20407b55261974 Mon Sep 17 00:00:00 2001 From: Daniel Ayala <14967941+danielayala94@users.noreply.github.com> Date: Thu, 2 Jan 2025 15:50:38 -0800 Subject: [PATCH 1/3] First attempt at logging DLL load failure info --- vnext/Shared/HermesRuntimeHolder.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vnext/Shared/HermesRuntimeHolder.cpp b/vnext/Shared/HermesRuntimeHolder.cpp index 3ed3525b068..ac81b1e6c26 100644 --- a/vnext/Shared/HermesRuntimeHolder.cpp +++ b/vnext/Shared/HermesRuntimeHolder.cpp @@ -39,7 +39,14 @@ void NAPI_CDECL removeInspectorPage(int32_t pageId) noexcept; class HermesFuncResolver : public IFuncResolver { public: - HermesFuncResolver() : libHandle_(LoadLibraryAsPeerFirst(L"hermes.dll")) {} + HermesFuncResolver(){ + libHandle_ = LoadLibraryAsPeerFirst(L"hermes.dll"); + + // If hermes.dll failed to load, catch the last Win32 error and surface it. + if (libHandle_ == nullptr) { + CRASH_ON_ERROR(GetLastError()); + } + } FuncPtr getFuncPtr(const char *funcName) override { return reinterpret_cast(GetProcAddress(libHandle_, funcName)); From 51ce81531d45ea880de320646ea14b1ec7953fe1 Mon Sep 17 00:00:00 2001 From: Daniel Ayala <14967941+danielayala94@users.noreply.github.com> Date: Fri, 3 Jan 2025 13:47:59 -0800 Subject: [PATCH 2/3] Change files --- ...ative-windows-26f2e365-fe3c-4635-8874-2e9536724017.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/react-native-windows-26f2e365-fe3c-4635-8874-2e9536724017.json diff --git a/change/react-native-windows-26f2e365-fe3c-4635-8874-2e9536724017.json b/change/react-native-windows-26f2e365-fe3c-4635-8874-2e9536724017.json new file mode 100644 index 00000000000..61065975863 --- /dev/null +++ b/change/react-native-windows-26f2e365-fe3c-4635-8874-2e9536724017.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "First attempt at logging DLL load failure info", + "packageName": "react-native-windows", + "email": "14967941+danielayala94@users.noreply.github.com", + "dependentChangeType": "none" +} From b31462f378fdf36b599247987ea7eede97c0bd39 Mon Sep 17 00:00:00 2001 From: Daniel Ayala <14967941+danielayala94@users.noreply.github.com> Date: Fri, 3 Jan 2025 16:24:49 -0800 Subject: [PATCH 3/3] Fixed format --- vnext/Shared/HermesRuntimeHolder.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vnext/Shared/HermesRuntimeHolder.cpp b/vnext/Shared/HermesRuntimeHolder.cpp index ac81b1e6c26..dd1fbfe05a7 100644 --- a/vnext/Shared/HermesRuntimeHolder.cpp +++ b/vnext/Shared/HermesRuntimeHolder.cpp @@ -39,9 +39,9 @@ void NAPI_CDECL removeInspectorPage(int32_t pageId) noexcept; class HermesFuncResolver : public IFuncResolver { public: - HermesFuncResolver(){ + HermesFuncResolver() { libHandle_ = LoadLibraryAsPeerFirst(L"hermes.dll"); - + // If hermes.dll failed to load, catch the last Win32 error and surface it. if (libHandle_ == nullptr) { CRASH_ON_ERROR(GetLastError());