[Bug 35236] New: Nitro PDF Reader 3 crashes on startup (preference for native 'msvcr100' forces unload of 'msvcrt' causing exception in builtin 'msvcp100' entry point)

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Dec 26 15:14:33 CST 2013


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

            Bug ID: 35236
           Summary: Nitro PDF Reader 3 crashes on startup (preference for
                    native 'msvcr100' forces unload of 'msvcrt' causing
                    exception in builtin 'msvcp100' entry point)
           Product: Wine
           Version: 1.7.9
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: msvcp
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
    Classification: Unclassified

Hello folks,

as the summary says.

A side-effect of recent msvcpXXX refactoring:
http://source.winehq.org/git/wine.git/commitdiff/6d30d6be78a49e1add6d8c7886484a2ceb950c71

Relevant part of trace log:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Nitro/Reader 3

$ WINEDEBUG=+tid,+seh,+relay,+loaddll,+process,+module,+imports wine
./NitroPDFReader.exe >>trace.txt 2>&1
...
002d:trace:module:load_dll looking for L"MSVCR100.dll" in L"C:\\Program
Files\\Nitro\\Reader
3;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
002d:trace:module:get_load_order looking for
L"C:\\windows\\system32\\MSVCR100.dll"
002d:trace:module:get_load_order got hardcoded default for L"MSVCR100.dll"
002d:trace:module:load_builtin_dll Trying built-in
L"C:\\windows\\system32\\MSVCR100.dll"
...
002d:trace:module:load_builtin_dll Trying built-in L"msvcrt.dll" 
...
002d:trace:module:load_builtin_callback loaded msvcrt.dll 0x123280 0x7e240000
002d:trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msvcrt.dll"
at 0x7e240000: builtin
002d:trace:module:load_dll Loaded module L"C:\\windows\\system32\\msvcrt.dll"
(builtin) at 0x7e240000 
...
002d:trace:module:load_builtin_callback loaded msvcr100.dll 0x1231d0 0x7e2f0000
002d:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\msvcr100.dll" at 0x7e2f0000: builtin
002d:Call PE DLL (proc=0x7e2f98dc,module=0x7e2f0000
L"msvcr100.dll",reason=WINE_PREATTACH,res=(nil))
002d:Ret  PE DLL (proc=0x7e2f98dc,module=0x7e2f0000
L"msvcr100.dll",reason=WINE_PREATTACH,res=(nil)) retval=0
002d:trace:module:load_dll L"C:\\windows\\system32\\MSVCR100.dll" pre-attach
returned FALSE, preferring native
002d:trace:module:LdrUnloadDll (0x7e2f0000)
002d:trace:module:LdrUnloadDll (L"msvcr100.dll") - START
002d:trace:module:MODULE_DecRefCount (L"msvcr100.dll") ldr.LoadCount: 0
002d:trace:module:MODULE_DecRefCount (L"msvcrt.dll") ldr.LoadCount: 0
002d:trace:module:MODULE_DecRefCount (L"KERNEL32.dll") ldr.LoadCount: 16
002d:trace:module:MODULE_DecRefCount (L"ntdll.dll") ldr.LoadCount: 12
002d:trace:module:MODULE_DecRefCount (L"KERNEL32.dll") ldr.LoadCount: 15
002d:trace:module:free_modref  unloading L"C:\\windows\\system32\\msvcrt.dll"
002d:trace:module:free_modref  unloading L"C:\\windows\\system32\\msvcr100.dll"
002d:trace:module:LdrUnloadDll END
002d:trace:module:load_native_dll Trying native dll
L"C:\\windows\\system32\\MSVCR100.dll" 
...
002d:trace:loaddll:load_native_dll Loaded
L"C:\\windows\\system32\\MSVCR100.dll" at 0x78aa0000: native
002d:trace:module:load_dll Loaded module L"C:\\windows\\system32\\MSVCR100.dll"
(native) at 0x78aa0000 
...
002d:trace:module:load_dll looking for L"MSVCP100.dll" in L"C:\\Program
Files\\Nitro\\Reader
3;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
002d:trace:module:get_load_order looking for
L"C:\\windows\\system32\\MSVCP100.dll"
002d:trace:module:get_load_order got hardcoded default for L"MSVCP100.dll"
002d:trace:module:load_builtin_dll Trying built-in
L"C:\\windows\\system32\\MSVCP100.dll"
...
002d:trace:module:load_dll Found L"C:\\windows\\system32\\MSVCR100.dll" for
L"msvcr100.dll" at 0x78aa0000, count=4 
...
002d:trace:module:load_builtin_callback loaded msvcp100.dll 0x12cfb0 0x7de30000
002d:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\msvcp100.dll" at 0x7de30000: builtin
002d:Call PE DLL (proc=0x7de8df94,module=0x7de30000
L"msvcp100.dll",reason=WINE_PREATTACH,res=(nil))
002d:Ret  PE DLL (proc=0x7de8df94,module=0x7de30000
L"msvcp100.dll",reason=WINE_PREATTACH,res=(nil)) retval=1
002d:trace:module:load_dll Loaded module L"C:\\windows\\system32\\MSVCP100.dll"
(builtin) at 0x7de30000
002d:trace:imports:import_dll --- ??1_Container_base12 at std@@QAE at XZ
MSVCP100.dll.154 = 0x7de35280
002d:trace:imports:import_dll --- ?_Xout_of_range at std@@YAXPBD at Z
MSVCP100.dll.654 = 0x7de37650
002d:trace:imports:import_dll --- ?_Xlength_error at std@@YAXPBD at Z
MSVCP100.dll.652 = 0x7de37620
002d:trace:imports:import_dll --- ?_Orphan_all at _Container_base0@std@@QAEXXZ
MSVCP100.dll.593 = 0x7de372bc 
...
002d:trace:module:process_attach (L"msvcp100.dll",0x1) - START
002d:Call PE DLL (proc=0x7de8df94,module=0x7de30000
L"msvcp100.dll",reason=PROCESS_ATTACH,res=0x1)
002d:Call KERNEL32.GetModuleHandleA(7de9e0a8 "msvcrt.dll") ret=7de83224
002d:trace:module:LdrGetDllHandle L"msvcrt.dll" -> (nil) (load path
L"C:\\Program Files\\Nitro\\Reader
3;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem")
002d:Ret  KERNEL32.GetModuleHandleA() retval=00000000 ret=7de83224
002d:Call KERNEL32.GetProcAddress(00000000,7de9e0b3 "??2 at YAPAXI@Z")
ret=7de8323f
002d:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=7de8323f
002d:Call KERNEL32.GetProcAddress(00000000,7de9e0c0 "??3 at YAXPAX@Z")
ret=7de8325f
002d:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=7de8325f
002d:Call KERNEL32.GetProcAddress(00000000,7de9e0d0
"?_set_new_handler@@YAP6AHI at ZP6AHI@Z at Z") ret=7de8327f
002d:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=7de8327f
002d:Call KERNEL32.InitializeCriticalSection(7def4120) ret=7de82d08
002d:Ret  KERNEL32.InitializeCriticalSection() retval=00000001 ret=7de82d08
002d:Call KERNEL32.InitializeCriticalSection(7def4138) ret=7de82d08
002d:Ret  KERNEL32.InitializeCriticalSection() retval=00000001 ret=7de82d08
002d:Call KERNEL32.InitializeCriticalSection(7def4150) ret=7de82d08
002d:Ret  KERNEL32.InitializeCriticalSection() retval=00000001 ret=7de82d08
002d:Call KERNEL32.InitializeCriticalSection(7def4168) ret=7de82d08
002d:Ret  KERNEL32.InitializeCriticalSection() retval=00000001 ret=7de82d08
002d:trace:seh:raise_exception code=c0000005 flags=0 addr=(nil) ip=00000000
tid=002d
002d:trace:seh:raise_exception  info[0]=00000000
002d:trace:seh:raise_exception  info[1]=00000000
002d:trace:seh:raise_exception  eax=00000000 ebx=7ded4000 ecx=00000003
edx=7def3060 esi=017bfd50 edi=00000000
002d:trace:seh:raise_exception  ebp=017bfc18 esp=017bfbec cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00210206 
...
002d:exception in PE entry point
(proc=0x7de8df94,module=0x7de30000,reason=PROCESS_ATTACH,res=0x1)
002d:Ret  PE DLL (proc=0x7de8df94,module=0x7de30000
L"msvcp100.dll",reason=PROCESS_ATTACH,res=0x1) retval=0
002d:Call PE DLL (proc=0x7de8df94,module=0x7de30000
L"msvcp100.dll",reason=PROCESS_DETACH,res=0x1)
002d:Ret  PE DLL (proc=0x7de8df94,module=0x7de30000
L"msvcp100.dll",reason=PROCESS_DETACH,res=0x1) retval=1
002d:warn:module:process_attach Initialization of L"msvcp100.dll" failed 
--- snip ---

The initialization of builtin 'msvcr100.dll' which precedes 'msvcp100.dll'
pulls in builtin 'msvcrt.dll'.

Because native 'MSVCR100' is preferred, builtins are unloaded again, also
causing unload of 'msvcrt.dll' (native 'MSVCR100' has no load time binding to
'msvcrt.dll').

This has the consequence that there is no mapping of 'msvcrt.dll' at the time
when PROCESS_ATTACH is sent to builtin 'msvcp100.dll'.

Any use of MSVC runtime at this point (allocators) will cause failure
(exceptions in entry point).

$ sha1sum nitro_pdf_reader.exe 
bc1da512862a0d08193b20ea5339a7d2ef4a79f3  nitro_pdf_reader.exe

$ du -sh nitro_pdf_reader.exe 
28M    nitro_pdf_reader.exe

$ wine --version
wine-1.7.9-183-g919e620

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