[Bug 15489] New: Build should optionally produce .pdb file suitable for use with symbol server
http://bugs.winehq.org/show_bug.cgi?id=15489 Summary: Build should optionally produce .pdb file suitable for use with symbol server Product: Wine Version: 1.1.5 Platform: Other OS/Version: other Status: NEW Severity: enhancement Priority: P2 Component: build-env AssignedTo: wine-bugs(a)winehq.org ReportedBy: dank(a)kegel.com When Windows applications with their own crash logging systems crash, they report the stack dump to their own crash dump server, which uses Microsoft-supplied .pdb files (or Microsoft's symbol server) to resolve the symbol names in system DLLs. Wine should also provide such .pdb files, for use by vendors in analyzing crash dumps. There should be an identifying key in the crash dump and the .pdb file allowing the crash server or debugger to choose the proper .pdb file; MSFT must support that, let's see if we can use the same mechanism they do to handle the much larger number of Wine versions and flavors. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=15489 Jerome Leclanche <adys.wh(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |adys.wh(a)gmail.com --- Comment #1 from Jerome Leclanche <adys.wh(a)gmail.com> 2011-10-27 12:09:27 CDT --- Im guessing this hasn't been fixed. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=15489 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Hardware|Other |x86 OS|other |Linux --- Comment #2 from Austin English <austinenglish(a)gmail.com> --- (In reply to Jerome Leclanche from comment #1)
Im guessing this hasn't been fixed.
It has not. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=15489 --- Comment #3 from Austin English <austinenglish(a)gmail.com> --- This would also potentially be useful for valgrind + wine's test. The loader tests show: ../../../tools/runtest -q -P wine -T ../../.. -M kernel32.dll -p kernel32_test.exe.so loader && touch loader.ok ==30892== LOAD_PDB_DEBUGINFO: Find PDB file: /tmp/valgrind_petmp30892_8de13308 is empty ==30892== Warning: Missing or un-stat-able /home/austin/.wine-valgrind/drive_c/users/austin/Temp/ldr2ab4.pdb loader.c:459: Test failed: 2: 0x10002000 != 0 loader.c:460: Test failed: 2: 1 != 0 loader.c:462: Test failed: 2: 2000 != MEM_FREE loader.c:463: Test failed: 2: 20000 != 0 ==30892== LOAD_PDB_DEBUGINFO: Find PDB file: /tmp/valgrind_petmp30892_8de13308 is empty ==30892== Warning: Missing or un-stat-able /home/austin/.wine-valgrind/drive_c/users/austin/Temp/ldr2b8c.pdb loader.c:459: Test failed: 3: 0x10002000 != 0 loader.c:460: Test failed: 3: 1 != 0 loader.c:462: Test failed: 3: 2000 != MEM_FREE loader.c:463: Test failed: 3: 20000 != 0 ==30892== LOAD_PDB_DEBUGINFO: Find PDB file: /tmp/valgrind_petmp30892_8de13308 is empty ==30892== Warning: Missing or un-stat-able /home/austin/.wine-valgrind/drive_c/users/austin/Temp/ldr2bb0.pdb loader.c:459: Test failed: 4: 0x10001000 != 0 loader.c:460: Test failed: 4: 1 != 0 loader.c:462: Test failed: 4: 2000 != MEM_FREE loader.c:463: Test failed: 4: 20000 != 0 ==30892== LOAD_PDB_DEBUGINFO: Find PDB file: /tmp/valgrind_petmp30892_8de13308 is empty ==30892== Warning: Missing or un-stat-able /home/austin/.wine-valgrind/drive_c/users/austin/Temp/ldr2bee.pdb loader.c:459: Test failed: 6: 0x10002000 != 0 loader.c:460: Test failed: 6: 1 != 0 loader.c:462: Test failed: 6: 2000 != MEM_FREE loader.c:463: Test failed: 6: 20000 != 0 ==30892== LOAD_PDB_DEBUGINFO: Find PDB file: /tmp/valgrind_petmp30892_8de13308 is empty ==30892== Warning: Missing or un-stat-able /home/austin/.wine-valgrind/drive_c/users/austin/Temp/ldr2c13.pdb loader.c:459: Test failed: 7: 0x10002000 != 0 loader.c:460: Test failed: 7: 1 != 0 loader.c:462: Test failed: 7: 2000 != MEM_FREE loader.c:463: Test failed: 7: 20000 != 0 ==30892== LOAD_PDB_DEBUGINFO: Find PDB file: /tmp/valgrind_petmp30892_8de13308 is empty though it's a lot of work for a niche gain. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=15489 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |focht(a)gmx.net --- Comment #4 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, well the part of producing .pdb files is already possible using llvm-mingw cross-toolchain. See Jacek's status update here: https://www.winehq.org/pipermail/wine-devel/2019-December/157038.html https://github.com/mstorsjo/llvm-mingw Martin provides prebuilt cross-toolchains for Linux and Windows here: https://github.com/mstorsjo/llvm-mingw/releases For Linux distros just download and unpack the tarball for Ubuntu. https://github.com/mstorsjo/llvm-mingw/releases/download/20191230/llvm-mingw... Inject the cross-toolchain into PATH variable to have Wine's 'configure' to pick it up. Additionally you need export the following environment variables: --- snip --- $ export CROSSCFLAGS="-g -gcodeview -O2" $ export CROSSLDFLAGS="-Wl,-pdb=" --- snip --- After building you end up with PDB files for each component/module where the conversion to PE format has already been done (still WIP): --- snip --- $ pwd /home/focht/projects/wine # search build directory $ find mainline-build-x86_64/ -name "*.pdb" mainline-build-x86_64/dlls/acledit/acledit.pdb mainline-build-x86_64/dlls/aclui/aclui.pdb mainline-build-x86_64/dlls/activeds/activeds.pdb mainline-build-x86_64/dlls/actxprxy/actxprxy.pdb mainline-build-x86_64/dlls/adsldp/adsldp.pdb mainline-build-x86_64/dlls/adsldpc/adsldpc.pdb mainline-build-x86_64/dlls/advpack/advpack.pdb mainline-build-x86_64/dlls/amsi/amsi.pdb mainline-build-x86_64/dlls/amstream/amstream.pdb mainline-build-x86_64/dlls/api-ms-win-appmodel-identity-l1-1-0/api-ms-win-appmodel-identity-l1-1-0.pdb ... mainline-build-x86_64/dlls/msvcirt/msvcirt.pdb mainline-build-x86_64/dlls/msvcm80/msvcm80.pdb mainline-build-x86_64/dlls/msvcm90/msvcm90.pdb mainline-build-x86_64/dlls/msvcp100/msvcp100.pdb mainline-build-x86_64/dlls/msvcp110/msvcp110.pdb mainline-build-x86_64/dlls/msvcp120_app/msvcp120_app.pdb mainline-build-x86_64/dlls/msvcp120/msvcp120.pdb mainline-build-x86_64/dlls/msvcp140/msvcp140.pdb mainline-build-x86_64/dlls/msvcp60/msvcp60.pdb mainline-build-x86_64/dlls/msvcp70/msvcp70.pdb mainline-build-x86_64/dlls/msvcp71/msvcp71.pdb mainline-build-x86_64/dlls/msvcp80/msvcp80.pdb mainline-build-x86_64/dlls/msvcp90/msvcp90.pdb mainline-build-x86_64/dlls/msvcr120_app/msvcr120_app.pdb mainline-build-x86_64/dlls/msvcrt20/msvcrt20.pdb mainline-build-x86_64/dlls/msvcrt40/msvcrt40.pdb mainline-build-x86_64/dlls/msvfw32/msvfw32.pdb mainline-build-x86_64/dlls/msvidc32/msvidc32.pdb mainline-build-x86_64/dlls/mswsock/mswsock.pdb mainline-build-x86_64/dlls/msxml2/msxml2.pdb mainline-build-x86_64/dlls/msxml4/msxml4.pdb mainline-build-x86_64/dlls/msxml6/msxml6.pdb ... mainline-build-x86_64/programs/wordpad/wordpad.pdb mainline-build-x86_64/programs/write/write.pdb mainline-build-x86_64/programs/wscript/wscript.pdb mainline-build-x86_64/programs/wuauserv/wuauserv.pdb mainline-build-x86_64/programs/wusa/wusa.pdb mainline-build-x86_64/programs/xcopy/xcopy.pdb --- snip --- Regarding the topic of symbol servers ... Well, that's another topic which should be discussed in different ticket(s). It's certainly possible to set up a MS symsrv-compatible local or remote symbol store for Wine .pdb files by using the 'symstore' tool from 'Microsoft Debugging Tools for Windows'. Supporting Windows debuggers on Linux which tightly integrate with native 'dbghelp' v6.3+, 'symsrv' and 'msdiaxxx' requires more work. $ wine --version wine-5.0-rc3 Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=15489 Jacek Caban <jacek(a)codeweavers.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jacek(a)codeweavers.com --- Comment #5 from Jacek Caban <jacek(a)codeweavers.com> --- The next step for .pdb files support is making build system and winegcc aware of them. But that will have to wait until after code freeze. It's great to see that you got symbol server working! I used .pdbs produced like that in VS running on Windows and it worked fine as well. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=15489 Jacek Caban <jacek(a)codeweavers.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Fixed by SHA1| |83d00d328f58f910a9b197e0a46 | |5b110cbdc727c Resolution|--- |FIXED --- Comment #6 from Jacek Caban <jacek(a)codeweavers.com> --- This is fixed in Wine now. The proper way to build pdb files now is configure CROSSDEBUG=pdb This will generate pdb files in build dir. Potential further improvements are possible. We could for example provide a way to install those files that could also be used to sync with symbol server. I didn't try that yet, ideas are welcomed. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=15489 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #7 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 5.9. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (2)
-
wine-bugs@winehq.org -
WineHQ Bugzilla