[Bug 35109] New: L.A. Noire 1.3 (Steam version) crashes on startup

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Dec 11 17:08:56 CST 2013


http://bugs.winehq.org/show_bug.cgi?id=35109

            Bug ID: 35109
           Summary: L.A. Noire 1.3 (Steam version) crashes on startup
           Product: Wine
           Version: 1.7.8
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: user32
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
    Classification: Unclassified

Hello folks,

as the summary says.

NOTE: Yes, there is bug 29128 - that one looks pretty messy - cluttered with
various (different) issue.

I think this issue is a different/new thing, unreported yet (see later).

Fortunately winedbg crash reporting gives some hint:

--- snip ---
Unhandled exception: page fault on read access to 0x0000c071 in 32-bit code
(0xf75a11c4).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:f75a11c4 ESP:00332980 EBP:003329a8 EFLAGS:00010296(  R- --  I S -A-P- )
 EAX:0000c071 EBX:f7739000 ECX:003329c0 EDX:7ed3c180
 ESI:00332cb0 EDI:02e1bc80
Stack dump:
0x00332980:  7edb2584 7ffd8000 001abc58 7bc5035e
0x00332990:  7bccf000 ffffffff 001abc58 003329c0
0x003329a0:  7ed73000 00332cb0 003329d8 7ec90769
0x003329b0:  0000c071 7ed3c2e8 7ec8c625 7ed1fc4f
0x003329c0:  7edb2580 00000009 00000012 00000000
0x003329d0:  00110000 7ed73000 00332a38 7ec90e80
000c: sel=0067 base=00000000 limit=00000000 16-bit --x
Backtrace:
=>0 0xf75a11c4 strcmpiW+0x16(str1=*** invalid address 0xc071 ***,
str2="SysDateTimePick32")
[/home/focht/projects/wine/wine-git/libs/wine/string.c:32] in libwine.so.1
(0x003329a8)
  1 0x7ec90769 is_comctl32_class+0x59(name=*** invalid address 0xc071 ***)
[/home/focht/projects/wine/wine-git/dlls/user32/class.c:156] in user32
(0x003329d8)
  2 0x7ec90e80 CLASS_FindClass+0x125(name=*** invalid address 0xc071 ***,
hinstance=0x7ec80000)
[/home/focht/projects/wine/wine-git/dlls/user32/class.c:337] in user32
(0x00332a38)
  3 0x7ec9305a GetClassInfoExA+0x12e(hInstance=<couldn't compute location>,
name=<couldn't compute location>, wc=<couldn't compute location>)
[/home/focht/projects/wine/wine-git/dlls/user32/class.c:1192] in user32
(0x00332c98)
  4 0x7ec92e09 GetClassInfoA+0x37(hInstance=<couldn't compute location>,
name=<couldn't compute location>, wc=<couldn't compute location>)
[/home/focht/projects/wine/wine-git/dlls/user32/class.c:1123] in user32
(0x00332d18)
  5 0x017edb1a in lanoire (+0x13edb19) (0x00332d68)
0xf75a11c4 strcmpiW+0x16
[/home/focht/projects/wine/wine-git/libs/wine/string.c:32] in libwine.so.1:
movzwl    0x0(%eax),%eax
32            int ret = tolowerW(*str1) - tolowerW(*str2); 
...
Modules:
Module    Address            Debug info    Name (155 modules)
PE      400000- 184f000    Export          lanoire
PE     2e50000- 2e66000    Deferred        xinput1_3
PE     30c0000- 310b000    Deferred        fmod_event
PE     3110000- 3215000    Deferred        fmodex
PE     35b0000- 35f7000    Deferred        binkw32
PE     4a50000- 4b08000    Deferred        errorhandler
PE     4fe0000- 51df000    Deferred        d3dx9_43
PE     51e0000- 521f000    Deferred        d3dx11_43
PE     5c20000- 5ee1000    Deferred        steam
PE    10000000-100a6000    Deferred        gameoverlayrenderer
PE    38000000-38881000    Deferred        steamclient
PE    3b400000-3b41f000    Deferred        steam_api
PE    3f000000-3f0ac000    Deferred        tier0_s
PE    3f600000-3f64b000    Deferred        vstdlib_s
PE    60000000-60008000    Deferred        accessibility
PE    78130000-781cb000    Deferred        msvcr80
PE    78aa0000-78b5f000    Deferred        msvcr100
PE    79000000-79046000    Deferred        mscoree
PE    79060000-790bb000    Deferred        mscorjit
PE    790c0000-79518000    Deferred        mscorlib
PE    79e70000-7a400000    Deferred        mscorwks
PE    7a440000-7a744000    Deferred        system
PE    7ade0000-7ae7c000    Deferred        system.drawing
PE    7afd0000-7b49e000    Deferred        system.windows.forms
ELF    7b800000-7ba60000    Deferred        kernel32<elf>
  \-PE    7b810000-7ba60000    \               kernel32 
...
Threads:
process  tid      prio (all id:s are in hex) 
00000052 (D) C:\Program Files\Steam\SteamApps\common\L.A.Noire\LANoire.exe
    0000005c    2
    0000005b    0
    00000051    0 <== 
--- snip ---

The relevant part of trace log:

HINT: avoid redirecting to log files residing in main Steam/app folder(s).

Steam has a directory change/watcher thread which is triggered _each_ time the
trace log is written to, causing delays and/or other unintended side-effects.

--- snip ---
$ pwd
/home/focht/wine-apps/steam/wineprefix/drive_c/Program Files/Steam

$ wine ./steam.exe -applaunch 110800 -dev -console -allowdebug -nominidumps
-windowed -nobreakpad >> ~/Downloads/log.txt 2>&1

...
0024:Call
KERNEL32.CreateThread(00000000,00000000,7dc530ee,0ae69da8,00000000,00000000)
ret=7dc540fe
...
0024:Ret  KERNEL32.CreateThread() retval=00000510 ret=7dc540fe 
...
0055:Call user32.RegisterClassExA(00332dd8) ret=00a9138e
0055:trace:class:CLASS_RegisterClass name=L"L.A. Noire" hinst=0x400000
style=0x3 clExtr=0x0 winExtr=0x0
0055:trace:class:RegisterClassExA name="L.A. Noire" atom=c06e wndproc=0xa91560
hinst=0x400000 bg=(nil) style=00000003 clsExt=0 winExt=0 class=0x1ce8f0
0055:Ret  user32.RegisterClassExA() retval=0000c06e ret=00a9138e
0055:Call user32.FindWindowA(0000c06e,00000000) ret=00a9139e
0055:Ret  user32.FindWindowA() retval=00000000 ret=00a9139e
0055:Call user32.GetClassInfoA(00000000,0000c06e,00332d3c) ret=017edb1a
0055:trace:class:GetClassInfoExA (nil) #c06e 0x332c8c
0055:trace:seh:raise_exception code=c0000005 flags=0 addr=0xf75cd1c4
ip=f75cd1c4 tid=0055
0055:trace:seh:raise_exception  info[0]=00000000
0055:trace:seh:raise_exception  info[1]=0000c06e
0055:trace:seh:raise_exception  eax=0000c06e ebx=f7765000 ecx=00332980
edx=7ed2d180 esi=00332c70 edi=00332cfc
0055:trace:seh:raise_exception  ebp=00332968 esp=00332940 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010296
...
--- snip ---

Not sure if the call "GetClassInfo( NULL, <atom_of_some_internal_class>,
&info)" was really intended because it's useless if the class is not a system
builtin/global one.

Source:
http://source.winehq.org/git/wine.git/blob/c25c0198833885581dd381240882fc9312c81f74:/dlls/user32/class.c#l306

--- snip ---
306 static CLASS *CLASS_FindClass( LPCWSTR name, HINSTANCE hinstance )
307 {
308     static const WCHAR comctl32W[] =
{'c','o','m','c','t','l','3','2','.','d','l','l',0};
309     struct list *ptr;
310     ATOM atom = get_int_atom_value( name );
311
312     GetDesktopWindow(); /* create the desktop window to trigger builtin
class registration */
313
314     for (;;)
315     {
...
337         if (!is_comctl32_class( name )) break;
338         if (GetModuleHandleW( comctl32W )) break;
339         if (!LoadLibraryW( comctl32W )) break;
340         TRACE( "%s retrying after loading comctl32\n", debugstr_w(name) );
341     }
342
343     TRACE("%s %p -> not found\n", debugstr_w(name), hinstance);
344     return NULL;
345 }
--- snip ---

is_comctl32_class() on an atom won't work.

The commit log for that component indicates that Alexandre did some rework
here:

http://source.winehq.org/git/wine.git/commitdiff/c25c0198833885581dd381240882fc9312c81f74

So technically it's a regression.

If that bug is fixed the game goes further with this social club/renderer
process starting - only to complain with:

"DX94: Graphics card capabilities are below the minimum specifications." 

Grmbl ...

$  wine --version
wine-1.7.8-172-ga63222e

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.



More information about the wine-bugs mailing list