https://bugs.winehq.org/show_bug.cgi?id=37243
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |win64 CC| |focht@gmx.net Component|-unknown |kernel32 Summary|Scuffham S-Gear (64 bit) |64-bit Scuffham S-Gear v2.4 |crashes on startup |crashes on startup (needs | |'K32EnumDeviceDrivers' | |implementation/semi-stub)
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The app tries to enumerate all device drivers in the system (part of 64-bit FlexNet licensing scheme).
--- snip --- $ pwd /home/focht/wine64/drive_c/Program Files/Scuffham Amps/S-Gear2
$ WINEDEBUG=+tid,+seh,+relay wine ./S-Gear2.exe >>log.txt 2>&1 ... 0025:Call KERNEL32.LoadLibraryA(0023e900 "C:\Program Files\Scuffham Amps\S-Gear2\S-Gear2_ActLOC.dll") ret=01c5eb33 0025:Ret PE DLL (proc=0x1c702f0,module=0x18b0000 L"S-Gear2_Act.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1 0025:Ret KERNEL32.LoadLibraryA() retval=018b0000 ret=180129a2b 0025:Call KERNEL32.GetProcAddress(018b0000,00000002) ret=180129a61 0025:Ret KERNEL32.GetProcAddress() retval=01cbca40 ret=180129a61 0025:Call advapi32.OpenSCManagerA(00000000,00000000,00000001) ret=01cbcaa5 ... 0025:Ret advapi32.OpenSCManagerA() retval=0007b810 ret=01cbcaa5 0025:Call advapi32.OpenServiceA(0007b810,0202f2e4 "FlexNet Licensing Service 64",00000014) ret=01cbcac1 ... 0025:Ret advapi32.OpenServiceA() retval=0007b8a0 ret=01cbcac1 ... 0025:Call KERNEL32.K32EnumDeviceDrivers(00000000,00000000,0023f010) ret=01cb8bf0 0025:fixme:file:K32EnumDeviceDrivers ((nil), 0, 0x23f010): stub 0025:Ret KERNEL32.K32EnumDeviceDrivers() retval=00000001 ret=01cb8bf0 0025:Call ntdll.RtlAllocateHeap(02100000,00000000,00000050) ret=01c6e5f7 0025:Ret ntdll.RtlAllocateHeap() retval=021078b0 ret=01c6e5f7 0025:Call KERNEL32.K32EnumDeviceDrivers(021078b0,00000000,0023f010) ret=01cb8c48 0025:fixme:file:K32EnumDeviceDrivers (0x21078b0, 0, 0x23f010): stub 0025:Ret KERNEL32.K32EnumDeviceDrivers() retval=00000001 ret=01cb8c48 ... 0025:Call KERNEL32.IsDebuggerPresent() ret=01cb4b32 0025:Ret KERNEL32.IsDebuggerPresent() retval=00000000 ret=01cb4b32 0025:trace:seh:raise_exception code=80000003 flags=0 addr=0x1cb4bbd ip=1cb4bbd tid=0025 0025:trace:seh:raise_exception rax=000000007a2ac720 rbx=00000000cc4f4e80 rcx=000000000023f1b0 rdx=000000000023f280 0025:trace:seh:raise_exception rsi=000000000023f280 rdi=000000000023f1b0 rbp=0000000001e6b098 rsp=000000000023ed90 0025:trace:seh:raise_exception r8=00000000ffffffff r9=00000000b3161b82 r10=0000000001e6b0a8 r11=000000003b4fba5d 0025:trace:seh:raise_exception r12=00000001803c9e7c r13=0000000000000000 r14=00000001803b5390 r15=0000000000019bb8 ... Unhandled exception: page fault in 64-bit code (0x0000000001cb8248). fixme:dbghelp:interpret_function_table_entry PUSH_MACHFRAME 6 fixme:dbghelp:interpret_function_table_entry PUSH_MACHFRAME 6 Register dump: rip:0000000001cb8248 rsp:000000000023ed90 rbp:000000000138feaf eflags:00010206 ( R- -- I - -P- ) rax:00000000020ba1dc rbx:00000000f9c1100b rcx:000000000023e4c0 rdx:00000000af5b4d9c rsi:000000000023ede0 rdi:0000000000000002 r8:000000000c1084dd r9:00000000b3161b82 r10:0000000001e6b0a8 r11:0000000033b0b17e r12:000000000023e4b0 r13:0000000000000000 r14:00000001803b5390 r15:0000000000019bb8 ... Backtrace: =>0 0x0000000001cb8248 in s-gear2_act (+0x408248) (0x000000000138feaf) 1 0x0000000001cbbb40 in s-gear2_act (+0x40bb3f) (0x0000000001e6b098) 2 0x0000000001cbbe9f in s-gear2_act (+0x40be9e) (0x0000000001e6b098) 3 0x0000000001cbc1b4 in s-gear2_act (+0x40c1b3) (0x0000000001e6b098) 4 0x0000000001cbc4c4 in s-gear2_act (+0x40c4c3) (0x0000000001e6b098) 5 0x0000000001cbc7b0 in s-gear2_act (+0x40c7af) (0x0000000001e6b098) 6 0x0000000001cbc984 in s-gear2_act (+0x40c983) (0x0000000001e6b098) 7 0x0000000001cbcb1b in s-gear2_act (+0x40cb1a) (0x0000000000000032) 8 0x0000000180129a7f in s-gear2_x64 (+0x129a7e) (0x0000000000000032) 9 0x00000001802fcaa4 in s-gear2_x64 (+0x2fcaa3) (0x0000000000000032) 10 0x000000018017c7d4 in s-gear2_x64 (+0x17c7d3) (0x0000000000000032) 11 0x000000018017cef8 in s-gear2_x64 (+0x17cef7) (0x0000000000000032) 12 0x000000018000a44c in s-gear2_x64 (+0xa44b) (0x0000000000000032) 13 0x00000001801381e8 in s-gear2_x64 (+0x1381e7) (0x0000000000000032) 0x0000000001cb8248: calll *(%rax) Modules: Module Address Debug info Name (144 modules) PE 1740000- 17a0000 Deferred fnpcommssoap PE 18b0000- 20fe000 Export s-gear2_act ELF 7b800000- 7bc87000 Deferred kernel32<elf> -PE 7b820000- 7bc87000 \ kernel32 ELF 7be00000- 7c103000 Deferred <wine-loader> PE 140000000- 140018000 Deferred s-gear2 PE 180000000- 185250000 Export s-gear2_x64 ELF 301c400000- 301c616000 Deferred libgcc_s.so.1 ... Threads: process tid prio (all id:s are in hex) ... 00000024 (D) C:\Program Files\Scuffham Amps\S-Gear2\S-Gear2.exe 00000029 0 00000026 0 00000025 0 <== --- snip ---
Because of the stub, it throws an assert which causes another fault.
With a 'K32EnumDeviceDrivers' semi-stub, returning actual data, it goes a bit further - only to run into next problem: 'K32GetDeviceDriverBaseNameA' stub.
--- snip --- ... fixme:file:K32EnumDeviceDrivers ((nil), 0, 0x23f010): semi-stub fixme:file:K32EnumDeviceDrivers (0x211e030, 80, 0x23f010): semi-stub fixme:file:K32GetDeviceDriverBaseNameA ((nil), 0x23ee80, 256): stub fixme:file:K32GetDeviceDriverBaseNameA ((nil), 0x23ee80, 256): stub --- snip ---
$ sha1sum S-GearSetupv2_42.exe bfbcdc705c559d3c869cc84d30a65a11cc1875e6 S-GearSetupv2_42.exe
$ du -sh S-GearSetupv2_42.exe 313M S-GearSetupv2_42.exe
$ wine --version wine-1.7.26-21-g45c1d7c
Regards