[PATCH v2] Fix WOW64 process system DLL paths
Simon Marchi
simark@simark.ca
Tue Mar 24 22:10:27 GMT 2020
On 2020-03-24 3:23 p.m., Hannes Domani via Gdb-patches wrote:
> GetModuleFileNameEx returns for some DLLs of WOW64 processes
> the path inside the 64bit system directory instead of the 32bit
> syswow64 directory.
>
> Problem happens e.g. with dbghelp.dll:
>
> (gdb) start
> Temporary breakpoint 1 at 0x415a00: file fiber.cpp, line 430.
> Starting program: C:\src\tests\fiber.exe
> warning: `C:\Windows\system32\dbghelp.dll': Shared library architecture i386:x86-64 is not compatible with target architecture i386.
>
> Temporary breakpoint 1, main () at fiber.cpp:430
> 430 {
> (gdb) info sharedlibrary
> From To Syms Read Shared Object Library
> 0x77070000 0x771d4d20 Yes (*) C:\Windows\SysWOW64\ntdll.dll
> 0x74dc0000 0x74ebad9c Yes (*) C:\Windows\syswow64\kernel32.dll
> 0x75341000 0x75386a18 Yes (*) C:\Windows\syswow64\KernelBase.dll
> 0x6f6a1000 0x6f7c48fc Yes (*) C:\Windows\system32\dbghelp.dll
> 0x74d01000 0x74dab2c4 Yes (*) C:\Windows\syswow64\msvcrt.dll
> (*): Shared library is missing debugging information.
>
> This detects this situation and converts the DLL path to the
> syswow64 equivalent.
>
> gdb/ChangeLog:
>
> 2020-03-24 Hannes Domani <ssbssa@yahoo.de>
>
> * windows-nat.c (windows_add_all_dlls): Fix system dll paths.
> ---
> v2:
> - added error check with gdb_assert's
> - use std::string for newly assembled dll path
Thanks, this is ok.
Simon
More information about the Gdb-patches
mailing list