https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #13 from Anastasius Focht focht@gmx.net --- Hello Jacek,
I can confirm the provided tarballs containing PDB files for MinGW builds work for both, 32-bit and 64-bit Wine-Gecko.
Method 1: Extraction into WINEPREFIX (PDB live alongside the dlls).
64-bit:
--- snip --- $ tar xJvf ~/.cache/wine/gecko/wine-gecko-2.47.2-x86_64-pdb.tar.xz \ --directory ~/.wine/drive_c/windows/system32/gecko/2.47.2/wine_gecko/ \ --wildcards '*.pdb' --strip=1
wine-gecko-2.47.2-x86_64/browsercomps.pdb wine-gecko-2.47.2-x86_64/xul.pdb wine-gecko-2.47.2-x86_64/mozavutil.pdb wine-gecko-2.47.2-x86_64/nss3.pdb wine-gecko-2.47.2-x86_64/clearkey.pdb wine-gecko-2.47.2-x86_64/plugin-container.pdb wine-gecko-2.47.2-x86_64/mozavcodec.pdb wine-gecko-2.47.2-x86_64/libGLESv2.pdb wine-gecko-2.47.2-x86_64/libEGL.pdb wine-gecko-2.47.2-x86_64/lgpllibs.pdb wine-gecko-2.47.2-x86_64/mozglue.pdb --- snip ---
32-bit:
--- snip --- $ tar xJvf ~/.cache/wine/gecko/wine-gecko-2.47.2-x86-pdb.tar.xz \ --directory ~/.wine/drive_c/windows/syswow64/gecko/2.47.2/wine_gecko/ \ --wildcards '*.pdb' --strip=1
wine-gecko-2.47.2-x86/browsercomps.pdb wine-gecko-2.47.2-x86/xul.pdb wine-gecko-2.47.2-x86/mozavutil.pdb wine-gecko-2.47.2-x86/nss3.pdb wine-gecko-2.47.2-x86/clearkey.pdb wine-gecko-2.47.2-x86/plugin-container.pdb wine-gecko-2.47.2-x86/mozavcodec.pdb wine-gecko-2.47.2-x86/libGLESv2.pdb wine-gecko-2.47.2-x86/libEGL.pdb wine-gecko-2.47.2-x86/lgpllibs.pdb wine-gecko-2.47.2-x86/mozglue.pdb --- snip ---
Method 2: Put them into a local symbol store for use with symsrv.
I wrote a small howto here: https://gist.github.com/rmi1974/90f14258c622fe57a9b70f6cabe69d66
64-bit:
--- snip --- $ WINEDLLOVERRIDES=dbghelp=n wine \ "c:\Program Files\Debugging Tools for Windows (x64)\symstore.exe" \ add /r /o /t "wine-gecko-2.47.2-x86_64" \ /v "wine-gecko-2.47.2-x86_64" \ /f "z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\*.pdb" \ /s "z:\home\focht\projects\wine\symsrv"
SYMSTORE MESSAGE: 0 alternate indexers registered SYMSTORE MESSAGE: LastId.txt reported id 3 SYMSTORE MESSAGE: Final id is 0000000003 SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\browsercomps.pdb to z:\home\focht\projects\wine\symsrv\browsercomps.pdb\006E9BA45D36845C4C4C44205044422E1\browsercomps.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\clearkey.pdb to z:\home\focht\projects\wine\symsrv\clearkey.pdb\C0D07D931C1D42494C4C44205044422E1\clearkey.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\lgpllibs.pdb to z:\home\focht\projects\wine\symsrv\lgpllibs.pdb\38266693045F1FFC4C4C44205044422E1\lgpllibs.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\libEGL.pdb to z:\home\focht\projects\wine\symsrv\libEGL.pdb\984A4C920320EFF04C4C44205044422E1\libEGL.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\libGLESv2.pdb to z:\home\focht\projects\wine\symsrv\libGLESv2.pdb\40C820CEEADA319B4C4C44205044422E1\libGLESv2.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\mozavcodec.pdb to z:\home\focht\projects\wine\symsrv\mozavcodec.pdb\71FC40B0E6497F014C4C44205044422E1\mozavcodec.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\mozavutil.pdb to z:\home\focht\projects\wine\symsrv\mozavutil.pdb\828C0EA95169FEBD4C4C44205044422E1\mozavutil.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\mozglue.pdb to z:\home\focht\projects\wine\symsrv\mozglue.pdb\57C1AA41138EB6874C4C44205044422E1\mozglue.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\nss3.pdb to z:\home\focht\projects\wine\symsrv\nss3.pdb\5ADE01694B82AB1A4C4C44205044422E1\nss3.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\plugin-container.pdb to z:\home\focht\projects\wine\symsrv\plugin-container.pdb\49B153F740B27F7C4C4C44205044422E1\plugin-container.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86_64\xul.pdb to z:\home\focht\projects\wine\symsrv\xul.pdb\DCAA072A15BF3A9F4C4C44205044422E1\xul.pdb [Force: T, Compress: F]
SYMSTORE: Number of files stored = 11 SYMSTORE: Number of errors = 0 SYMSTORE: Number of files ignored = 0 --- snip ---
32-bit:
--- snip --- $ WINEDLLOVERRIDES=dbghelp=n wine \ "c:\Program Files\Debugging Tools for Windows (x64)\symstore.exe" \ add /r /o /t "wine-gecko-2.47.2-x86" \ /v "wine-gecko-2.47.2-x86" \ /f "z:\home\focht\Downloads\wine-gecko-2.47.2-x86\*.pdb" \ /s "z:\home\focht\projects\wine\symsrv"
SYMSTORE MESSAGE: 0 alternate indexers registered SYMSTORE MESSAGE: LastId.txt reported id 5 SYMSTORE MESSAGE: Final id is 0000000005 SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\browsercomps.pdb to z:\home\focht\projects\wine\symsrv\browsercomps.pdb\E2203C887EB848374C4C44205044422E1\browsercomps.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\clearkey.pdb to z:\home\focht\projects\wine\symsrv\clearkey.pdb\C231E460AFF28B264C4C44205044422E1\clearkey.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\lgpllibs.pdb to z:\home\focht\projects\wine\symsrv\lgpllibs.pdb\E710DDA6243B8C654C4C44205044422E1\lgpllibs.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\libEGL.pdb to z:\home\focht\projects\wine\symsrv\libEGL.pdb\350154AF3BEF22DA4C4C44205044422E1\libEGL.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\libGLESv2.pdb to z:\home\focht\projects\wine\symsrv\libGLESv2.pdb\A53D2940335667C44C4C44205044422E1\libGLESv2.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\mozavcodec.pdb to z:\home\focht\projects\wine\symsrv\mozavcodec.pdb\4CCEA9A76836EC3A4C4C44205044422E1\mozavcodec.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\mozavutil.pdb to z:\home\focht\projects\wine\symsrv\mozavutil.pdb\27D0A64B27E0F69E4C4C44205044422E1\mozavutil.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\mozglue.pdb to z:\home\focht\projects\wine\symsrv\mozglue.pdb\64C60A88FD0536E94C4C44205044422E1\mozglue.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\nss3.pdb to z:\home\focht\projects\wine\symsrv\nss3.pdb\110BE322AAF8879C4C4C44205044422E1\nss3.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\plugin-container.pdb to z:\home\focht\projects\wine\symsrv\plugin-container.pdb\5BCC2EC5A893CD0C4C4C44205044422E1\plugin-container.pdb [Force: T, Compress: F] SYMSTORE MESSAGE: Copying z:\home\focht\Downloads\wine-gecko-2.47.2-x86\xul.pdb to z:\home\focht\projects\wine\symsrv\xul.pdb\3B7D05CEC098A7144C4C44205044422E1\xul.pdb [Force: T, Compress: F]
SYMSTORE: Number of files stored = 11 SYMSTORE: Number of errors = 0 SYMSTORE: Number of files ignored = 0 --- snip ---
Validate 32-bit Wine-Gecko 'xul.dll' as example:
--- snip --- $ WINEDLLOVERRIDES=dbghelp=n wine \ "c:\Program Files\Debugging Tools for Windows (x64)\symchk.exe" \ /v "c:\windows\syswow64\gecko\2.47.2\wine_gecko\xul.dll" \ /s "z:\home\focht\projects\wine\symsrv"
[SYMCHK] Searching for symbols to c:\windows\syswow64\gecko\2.47.2\wine_gecko\xul.dll in path z:\home\focht\projects\wine\symsrv DBGHELP: Symbol Search Path: z:\home\focht\projects\wine\symsrv [SYMCHK] Using search path "z:\home\focht\projects\wine\symsrv" DBGHELP: No header for c:\windows\syswow64\gecko\2.47.2\wine_gecko\xul.dll. Searching for image on disk DBGHELP: c:\windows\syswow64\gecko\2.47.2\wine_gecko\xul.dll - OK DBGHELP: xul - private symbols & lines
z:\home\focht\projects\wine\symsrv\xul.pdb\3B7D05CEC098A7144C4C44205044422E1\xul.pdb [SYMCHK] MODULE64 Info ---------------------- [SYMCHK] Struct size: 1680 bytes [SYMCHK] Base: 0x0000000010000000 [SYMCHK] Image size: 90521600 bytes [SYMCHK] Date: 0x5fc500b3 [SYMCHK] Checksum: 0x00000000 [SYMCHK] NumSyms: 0 [SYMCHK] SymType: SymPDB [SYMCHK] ModName: xul [SYMCHK] ImageName: c:\windows\syswow64\gecko\2.47.2\wine_gecko\xul.dll [SYMCHK] LoadedImage: c:\windows\syswow64\gecko\2.47.2\wine_gecko\xul.dll [SYMCHK] PDB: "z:\home\focht\projects\wine\symsrv\xul.pdb\3B7D05CEC098A7144C4C44205044422E1\xul.pdb" [SYMCHK] CV: RSDS [SYMCHK] CV DWORD: 0x53445352 [SYMCHK] CV Data: /build/wine-gecko-2.47.2-x86/toolkit/library/xul.pdb [SYMCHK] PDB Sig: 0 [SYMCHK] PDB7 Sig: {3B7D05CE-C098-A714-4C4C-44205044422E} [SYMCHK] Age: 1 [SYMCHK] PDB Matched: TRUE [SYMCHK] DBG Matched: TRUE [SYMCHK] Line nubmers: TRUE [SYMCHK] Global syms: TRUE [SYMCHK] Type Info: TRUE [SYMCHK] ------------------------------------ SymbolCheckVersion 0x00000002 Result 0x001f0001 DbgFilename DbgTimeDateStamp 0x5fc500b3 DbgSizeOfImage 0x05654000 DbgChecksum 0x00000000 PdbFilename z:\home\focht\projects\wine\symsrv\xul.pdb\3B7D05CEC098A7144C4C44205044422E1\xul.pdb PdbSignature {3B7D05CE-C098-A714-4C4C-44205044422E} PdbDbiAge 0x00000001 [SYMCHK] [ 0x00000000 - 0x001f0001 ] Checked "c:\windows\syswow64\gecko\2.47.2\wine_gecko\xul.dll"
SYMCHK: FAILED files = 0 SYMCHK: PASSED + IGNORED files = 1 --- snip ---
It can be also run against a whole directory to validate all files.
I've tested with x64dbg and builtin 'iexplore.exe' as well. The Wine-Gecko symbols take some time to load because of the huge number but eventually show up.
Source level debugging obviously won't work with debuggers requiring native MS DIA/dbghelp due to Unix paths (general problem). But who needs source level debugging anyway.
---
In further future it might be feasible to distribute the PDB files for official Wine releases and its dependencies (Gecko, Mono) by using a symbol server/store (serve directory with a web server).
Setting up a symbol store is not very hard (https://gist.github.com/rmi1974/90f14258c622fe57a9b70f6cabe69d66). There even exist Python tools mimicking the symstore tools from Debugging Tools for Windows (https://pypi.org/project/symstore/).
---
Bit off-topic: I hope the conversion of the remaining Wine builtins to PE format can be finished before Wine 6.0 release. That would be awesome ;-)
Regards