https://bugs.winehq.org/show_bug.cgi?id=46028
Bug ID: 46028 Summary: Provide separate debug/symbol info files (.pdb) for 32-bit and 64-bit Wine-Gecko 2.47+ package (unstripped 32-bit 'xul.dll' too large to be mapped) Product: Wine-gecko Version: unspecified Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: wine-gecko-unknown Assignee: jacek@codeweavers.com Reporter: focht@gmx.net Distribution: ---
Hello folks,
while investigating some crashes in Gecko's xul.dll I came across the missing debug symbols again. Bug 36941 repeated.
https://wiki.winehq.org/Gecko#Debug_info
For the 32-bit part this is pointless as the unstripped 32-bit 'xul.dll' will be always be too large for mapping. Split out symbols via PDB is a must.
* http://dl.winehq.org/wine/wine-gecko/2.36/wine_gecko-2.36-x86-dbg-msvc-pdb.t... * http://dl.winehq.org/wine/wine-gecko/2.40/wine_gecko-2.40-x86-dbg-msvc-pdb.t... * http://dl.winehq.org/wine/wine-gecko/2.44/ -> ??? * http://dl.winehq.org/wine/wine-gecko/2.47/ -> ???
$ wine --version wine-3.18-118-g377243b411
Regards
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #1 from Austin English austinenglish@gmail.com --- Last I tried this, I was blocked by wine pdb issues, because gecko needs at least msvc 2013, iirc.
At least these two come to mind: https://bugs.winehq.org/show_bug.cgi?id=37746 https://bugs.winehq.org/show_bug.cgi?id=38594
https://bugs.winehq.org/show_bug.cgi?id=46028
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #2 from Jacek Caban jacek@codeweavers.com --- Recently Firefox mingw builds were moved to clang-based toolchain. clang has support for .pdb files: https://bugzilla.mozilla.org/show_bug.cgi?id=1475562 https://bugzilla.mozilla.org/show_bug.cgi?id=1497645
If we update our Gecko package, we could use that. The problem is that a number of interfaces we use in MSHTML (see nsifacei.idl file) were removed from upstream Gecko meantime, so updating is going to be hard.
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #3 from Austin English austinenglish@gmail.com --- (In reply to Jacek Caban from comment #2)
Recently Firefox mingw builds were moved to clang-based toolchain. clang has support for .pdb files: https://bugzilla.mozilla.org/show_bug.cgi?id=1475562 https://bugzilla.mozilla.org/show_bug.cgi?id=1497645
If we update our Gecko package, we could use that. The problem is that a number of interfaces we use in MSHTML (see nsifacei.idl file) were removed from upstream Gecko meantime, so updating is going to be hard.
The problem isn't generating the pdb. The problem was that wine's dbghelp/kernel32 couldn't work with newer pdb formats.
I wasn't able to find what version format clang uses, but if it's too new they won't work out of the box for us.
https://bugs.winehq.org/show_bug.cgi?id=46028
Jacek Caban jacek@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|jacek@codeweavers.com |wine-bugs@winehq.org Component|wine-gecko-unknown |dbghelp Product|Wine-gecko |Wine
--- Comment #4 from Jacek Caban jacek@codeweavers.com --- (In reply to Austin English from comment #3)
The problem isn't generating the pdb. The problem was that wine's dbghelp/kernel32 couldn't work with newer pdb formats.
OK, adjusting component then.
https://bugs.winehq.org/show_bug.cgi?id=46028
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |3.18
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hi Austin,
--- quote --- The problem isn't generating the pdb. The problem was that wine's dbghelp/kernel32 couldn't work with newer pdb formats. --- quote ---
that's not really an issue for me. I rarely use builtin dbghelp for debugging due to various bugs/missing newer functionality. Only when using winedbg which rarely happens (winedbg is mostly unusable for application debugging).
Regards
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #6 from Austin English austinenglish@gmail.com --- (In reply to Jacek Caban from comment #4)
(In reply to Austin English from comment #3)
The problem isn't generating the pdb. The problem was that wine's dbghelp/kernel32 couldn't work with newer pdb formats.
OK, adjusting component then.
Sorry, I was unclear.
There are 2 overall issues: 1) Bug 46028 (this one) - we don't provide .pdbs for users to use 2) Bug 38594 - if we do provide .pdbs, and they're in msvc 2013+ format, they're completely unusable with Wine's dbghelp.
In fairness, it's possible that clang's pdb's do work in wine, I haven't tested them. I'll make a note to test if I get time. From comment #5, it sounds like native dbghelp works with the 2013 (and presumably clang) pdbs, which may serve as a workaround.
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
is there a plan to provide the next Wine-Gecko release built with llvm-mingw? Last Wine-Gecko 2.47.1 release still provides only unstripped binaries:
http://dl.winehq.org/wine/wine-gecko/2.47.1/
Jacek commented recently about llvm-mingw status here: https://www.winehq.org/pipermail/wine-devel/2019-December/157038.html
There is another bug about general PDB support in Wine: bug 15489 ("Build should optionally produce .pdb file suitable for use with symbol server").
For me PDBs created llvm-mingw with would be perfectly fine. I have a local symbol store/server with Wine PDBs working. It needs native dbghelp (DIA SDK) + symsrv because I use native debuggers. Winedbg is just awful for most debugging tasks.
$ wine --version wine-5.0-rc3
Regards
https://bugs.winehq.org/show_bug.cgi?id=46028
Jacek Caban jacek@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jacek@codeweavers.com
--- Comment #8 from Jacek Caban jacek@codeweavers.com --- Yes, I hope to move Wine Gecko builds to llvm-mingw. However, the port requires quite a few fixes. Most of them are in newer upstream, see [1] for an overview. I expect it to require some non-trivial cherry-picks and fixes specific to the version we use. I hope to do that, but didn't get to that yet. Once the move to llvm-mingw is done, providing .pdb files should be easy.
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1465790
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #9 from Austin English austinenglish@gmail.com --- (In reply to Austin English from comment #6)
(In reply to Jacek Caban from comment #4)
(In reply to Austin English from comment #3)
The problem isn't generating the pdb. The problem was that wine's dbghelp/kernel32 couldn't work with newer pdb formats.
OK, adjusting component then.
Sorry, I was unclear.
There are 2 overall issues:
- Bug 46028 (this one) - we don't provide .pdbs for users to use
- Bug 38594 - if we do provide .pdbs, and they're in msvc 2013+ format,
they're completely unusable with Wine's dbghelp.
In fairness, it's possible that clang's pdb's do work in wine, I haven't tested them. I'll make a note to test if I get time. From comment #5, it sounds like native dbghelp works with the 2013 (and presumably clang) pdbs, which may serve as a workaround.
FWIW, I tested with valgrind, which doesn't handle these pdbs very well. See: https://bugs.kde.org/show_bug.cgi?id=211031 https://bugs.kde.org/show_bug.cgi?id=416779
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #10 from Austin English austinenglish@gmail.com --- Created attachment 66339 --> https://bugs.winehq.org/attachment.cgi?id=66339 add --with-pdb option
This patch enables pdbs to be built. Currently it doesn't install them anywhere; I wasn't sure if they should go in the dlls directory or into their own directory.
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #11 from Jacek Caban jacek@codeweavers.com --- The newest Wine Gecko is built with llvm-mingw using PDB for debug symbols: https://source.winehq.org/patches/data/196813
PDB packages are available for download: http://dl.winehq.org/wine/wine-gecko/2.47.2/ -pdb.tar.xz packages are replacements for .tar.xz, but containing additional PDB files. I'm open for suggestions about how to provide those symbols.
https://bugs.winehq.org/show_bug.cgi?id=46028
Jacek Caban jacek@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Component|dbghelp |mshtml Status|NEW |RESOLVED Fixed by SHA1| |70567d9f2d32fa3f052609051e9 | |913344f24c42a
--- Comment #12 from Jacek Caban jacek@codeweavers.com --- Fixed with the new release.
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
https://bugs.winehq.org/show_bug.cgi?id=46028
--- Comment #14 from Jacek Caban jacek@codeweavers.com --- (In reply to Anastasius Focht from comment #13)
Hello Jacek,
I can confirm the provided tarballs containing PDB files for MinGW builds work for both, 32-bit and 64-bit Wine-Gecko.
Great, thanks for testing.
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 ---
If this usage pattern is common, then we can ship a tar containing only .pdb files so that there is no need to filter. The way I ended up doing it is a bit more convenient for using with shared build. You can just extract *-pdb.tar.xz files into /opt/wine/gecko/ and it should just work without creating copies in each prefix.
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/).
Agreed, it would be interesting.
https://bugs.winehq.org/show_bug.cgi?id=46028
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #15 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 6.0-rc1.