http://bugs.winehq.org/show_bug.cgi?id=8797
Summary: d3d/ddraw related Applications crashes on startup if WINEDEBUG+=relay was not set. Product: Wine Version: 0.9.39. Platform: Other OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-loader AssignedTo: wine-bugs@winehq.org ReportedBy: ErV2005@rambler.ru
After upgrading wine (from 0.9.37 to 0.9.38 or from 0.9.38 to 0.9.39 - I'm not sure) many graphical applications started crashing if WINEDEBUG+=all or WINEDEBUG+=relay not set and work fine if WINEDEBUG was specified Among those applications are Postal 1, Kiosaky's Cashflow 101, .kkreiger and probably more. I'm not sure if this is a bug in Wine or a problem in my system, because uninstalling and downgrading (even to 0.9.34) didn't help - problem now exists in other versions as well. Applications crash in a "windows way" - with access violation at address 0x7XXXXXXX. (Example output produced by .kkreiger will be attached(avaliable at http://www.theprodukkt.com/)) But .kkreiger works fine if started as WINEDEBUG=+relay wine wine pno001.exe &>/dev/null This application worked fine before and didn't need those flags.
Kyosaky's Cashflow 101 crashes with a windows message box which says "Unhandled exceptionL c0000005 At address: 7ce2f9ce".but works fine if started with WINEDEBUG=+relay
same thing with Postal 1.
There are also problems with an Alien vs Predator 2 game and some other apps that enumerate D3D display modes: if program has a listbox where videomodes can be selected, this box will contain no strings (alien vs. predator, ragnarok online, some other apps), if WINEDEBUG+=all is not set. Can these problems be connected with those crashes? ---- I was able to find where crash occurs, but didn't yet find why this happens. I've used one of my own ddraw test applications (written for windows) that produces same result - crashes if WINEDEBUG+=relay is not set, and works if it is set. Source code is at the end of message. (Both application and it's source code will be added as attachments) For Wine - 0.9.39: When initializing DirectDraw by using DirectDrawCreateEx, DDRAW_Create calls LoadLibraryA with argument "wined3d". Crash occurs during LoadLibraryA call, not in wined3d, but in ntdll/loader.c, in get_modref() function, at the "return cached_modref = CONTAINING_RECORD(mod, WINE_MODREF, ldr);" line. It looks like (somewhere between LoadLibraryA and get_modref()) there is a problem with a "if (TRACE_ON())", but I'm not sure if this so, and where should I look for this problem. And I still don't know why it worked before and suddenly stopped working. (I'm marking this as loader bug, because crash occurse while loading a dll) Any suggestions about location of this bug?
With best regards, Victor Eremin.