[PATCH 0/1] MR9794: ntdll: Add more information to error message.
If a user creates the wineprefix, with only 64-bit packages installed, the user gets an empty syswow64 directory inside the prefix. In that situation 64-bit applications are running, but when the user then installs the 32-bit packages the prefix stops to work with this message, even when the application to invoke is a 64-bit application and worked before: ``` wine: could not load kernel32.dll, status c0000135 ``` To help diagnosing this sitution this patch adds some more information which process could not find which kernel32.dll. This would look like this: ``` wine: could not load kernel32.dll, status c0000135, architecture wow64, in L"C:\\windows\\syswow64\\start.exe" ``` This caused probably bug #59043, and it bite me today again, when copying build directories to a ancient machine to save build time. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9794
From: Bernhard Übelacker <bernhardu@mailbox.org> --- dlls/ntdll/loader.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index c5c34935efd..0d107c27202 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -4467,7 +4467,9 @@ void loader_init( CONTEXT *context, void **entry ) if ((status = load_dll( NULL, L"kernel32.dll", 0, &kernel32, FALSE )) != STATUS_SUCCESS) { - MESSAGE( "wine: could not load kernel32.dll, status %lx\n", status ); + MESSAGE( "wine: could not load kernel32.dll, status %lx, architecture %s, in %s\n", + status, NtCurrentTeb()->WowTebOffset ? "wow64" : ( sizeof(void*) == 4 ? "win32" : "win64" ), + debugstr_us(&peb->ProcessParameters->ImagePathName) ); NtTerminateProcess( GetCurrentProcess(), status ); } node_kernel32 = kernel32->ldr.DdagNode; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9794
participants (2)
-
Bernhard Übelacker -
Bernhard Übelacker (@bernhardu)