WineHQ
Bug Tracking Database – Bug 35109

 Bugzilla

 

Last modified: 2013-12-20 12:43:59 UTC  

L.A. Noire 1.3 (Steam version) crashes on startup

Bug 35109 - L.A. Noire 1.3 (Steam version) crashes on startup
L.A. Noire 1.3 (Steam version) crashes on startup
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: user32
1.7.8
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2013-12-11 17:08 UTC by Anastasius Focht
Modified: 2013-12-20 12:43 UTC (History)
0 users

See Also:
Regression SHA1: c25c0198833885581dd381240882fc9312c81f74
Fixed by SHA1: fb4441df73dc0a1974515aa98831fdda3250dab6
Distribution: ---
Staged patchset:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anastasius Focht 2013-12-11 17:08:56 UTC
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
Comment 1 Anastasius Focht 2013-12-12 13:39:03 UTC
Hello folks,

this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/fb4441df73dc0a1974515aa98831fdda3250dab6

Thanks Alexandre

Regards
Comment 2 Alexandre Julliard 2013-12-20 12:43:59 UTC
Closing bugs fixed in 1.7.9.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers