http://bugs.winehq.org/show_bug.cgi?id=15206
Summary: Trouble with symbolic stack dumps and Chromium Product: Wine Version: CVS/GIT Platform: Other URL: http://build.chromium.org/buildbot/snapshots/chromium- rel-xp/ OS/Version: other Status: NEW Keywords: download, source Severity: normal Priority: P2 Component: dbghelp AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
Chromium has nightly builds with pdb files at http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/ and if you install corefonts, then current wine can install and run (though for me chromium hangs when loading web page).
However, getting symbolic stack dumps (sometimes?) fails. To get wine to find the symbol files, put them in the current directory (or the directory they were in when they were built, or a directory on Wine's PATH). But wine complains
trace:dbghelp_msc:pdb_init PDB(Z:\home\dank\snapshots\1712\chrome-win32-syms\chrome_dll.pdb): "Microsoft C/C++ MSF 7.00\r\n\x1aDS\x00\ trace:dbghelp_msc:pdb_init found DS/f for Z:\home\dank\snapshots\1712\chrome-win32-syms\chrome_dll.pdb: age=30 guid={c007e080-dbde-4fd9-a8dd-ae84cd0524a9} warn:dbghelp:module_find_cb Found L"Z:\home\dank\snapshots\1712\chrome-win32-syms\chrome_dll.pdb", but wrong age: 00000030 0000002c
(Does that mean the .pdb files are mismatched, or is this a wine bug?)
This patch disables the "age" check and seems to let symbolic stacks to be produced:
--- a/dlls/dbghelp/path.c +++ b/dlls/dbghelp/path.c @@ -560,7 +560,7 @@ static BOOL CALLBACK module_find_cb(PCWSTR buffer, PVOID use } if (pdb_lookup.age != mf->dw2) { - matched--; + //matched--; WARN("Found %s, but wrong age: %08x %08x\n", debugstr_w(buffer), pdb_lookup.age, mf->dw2); }
although now I don't seem to need the patch, so maybe I'm smoking crack.
Also, after about 12 lines of backtrace, winedbg seems to get stuck in an infinite loop. And before the backtrace there are hundreds of thousands of lines like fixme:dbghelp_msc:codeview_snarf Unsupported symbol id 1012
FWIW, here's my script to reproduce:
#!/bin/sh set -xe # This snapshot crashed for me; normally you'll want the latest one SNAPSHOT=1712
export WINE=$HOME/wine-git/wine export WINEPREFIX=$HOME/.wine cd $HOME mkdir -p pdb-bug cd pdb-bug
# Grab and unpack a snapshot of Chromium including debugging symbols wget -c http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/$SNAPSHOT/chrom... test -d chrome-win32 || unzip chrome-win32.zip wget -c http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/$SNAPSHOT/chrom... test -f chrome_exe.pdb || unzip -j chrome-win32-syms.zip
# Clean up .wine and install corefonts rm -rf $WINEPREFIX rm -f winetricks wget http://kegel.com/wine/winetricks sh winetricks -q corefonts
$WINE chrome-win32/chrome.exe --no-sandbox --single-process --disable-breakpad http://www.kegel.com 2>&1 | tee wine.log echo 'Now look at $PWD/wine.log to see whether a symbolic backtrace was produced.' echo 'Without the patch, it (sometimes?) fails with WARN "Found %s, but wrong age".'