https://bugs.winehq.org/show_bug.cgi?id=43480
Bug ID: 43480 Summary: Unhandled exception: page fault on read access to 0x00000000 in 64-bit code (0x0000000000000000). Product: Wine Version: 2.0.1 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: elf_che@yahoo.com Distribution: ---
Created attachment 58861 --> https://bugs.winehq.org/attachment.cgi?id=58861 Sound effect app for electric guitar and studio work.
Hello! I use 'wine-rt, wine-rt-amd64, wine-rt-i386:386, wineasio, wineasio-amd64, wineasio-i386:386' packages from KXstudio repo, and their dependencies from Deian 8 repo. I can't use Peavey Revalver IV, but successfully work with IK Multimedia Amplitube 4 and NI GuitarRig 5. When I start the Revalver app, I get this bug and go to task manager to kill the app process, because it freeze.
https://bugs.winehq.org/show_bug.cgi?id=43480
Sergey elf_che@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Debian Keywords| |win64
https://bugs.winehq.org/show_bug.cgi?id=43480
Sergey elf_che@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |elf_che@yahoo.com
https://bugs.winehq.org/show_bug.cgi?id=43480
Jeff Zaroyko jeffz@jeffz.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Unhandled exception: page |Peavey Revalver IV crashes |fault on read access to | |0x00000000 in 64-bit code | |(0x0000000000000000). |
https://bugs.winehq.org/show_bug.cgi?id=43480
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Keywords| |download Summary|Peavey Revalver IV crashes |Peavey Revalver IV (Amp | |modeling software) crashes | |due to missing Win7+ Touch | |Input API (stubs) URL| |https://revalver.peavey.com | |/assets/download/r4_win_x64 | |_160830.zip Component|-unknown |user32 CC| |focht@gmx.net
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The issue is also present in the 32-bit app version. The app late-binds some Win7+ Touch Input API but has no proper error handling for missing imports. It crashes when calling one of these API where no stubs exist. The trace log doesn't reveal this from the crash location, the app has to be debugged.
Relevant part of trace log:
--- snip --- $ pwd /home/focht/Downloads/wineprefix64/drive_c/Program Files/Peavey Electronics/ReValver 4
$ WINEDEBUG=+tid,+seh,+relay wine ./ReValver\ 4\ x64.exe >>log.txt 2>&1 ... 0032:Call KERNEL32.GetModuleHandleA(140fef094 "user32.dll") ret=140108915 0032:Ret KERNEL32.GetModuleHandleA() retval=7f0efa2a0000 ret=140108915 0032:Call KERNEL32.GetProcAddress(7f0efa2a0000,14100d530 "RegisterTouchWindow") ret=140108921 0032:Ret KERNEL32.GetProcAddress() retval=7f0efa2add14 ret=140108921 0032:Call KERNEL32.GetModuleHandleA(140fef094 "user32.dll") ret=140108915 0032:Ret KERNEL32.GetModuleHandleA() retval=7f0efa2a0000 ret=140108915 0032:Call KERNEL32.GetProcAddress(7f0efa2a0000,14100d544 "GetTouchInputInfo") ret=140108921 0032:Ret KERNEL32.GetProcAddress() retval=00000000 ret=140108921 0032:Call KERNEL32.GetModuleHandleA(140fef094 "user32.dll") ret=140108915 0032:Ret KERNEL32.GetModuleHandleA() retval=7f0efa2a0000 ret=140108915 0032:Call KERNEL32.GetProcAddress(7f0efa2a0000,14100d558 "CloseTouchInputHandle") ret=140108921 0032:Ret KERNEL32.GetProcAddress() retval=00000000 ret=140108921 0032:Call KERNEL32.GetModuleHandleA(140fef094 "user32.dll") ret=140108915 0032:Ret KERNEL32.GetModuleHandleA() retval=7f0efa2a0000 ret=140108915 0032:Call KERNEL32.GetProcAddress(7f0efa2a0000,14100d570 "GetGestureInfo") ret=140108921 0032:Ret KERNEL32.GetProcAddress() retval=00000000 ret=140108921 0032:Call user32.RegisterTouchWindow(00010078,00000000) ret=140340525 0032:fixme:win:RegisterTouchWindow (0x10078 00000000): stub 0032:Ret user32.RegisterTouchWindow() retval=00000000 ret=140340525 ... 0032:Call gdi32.SetMapMode(000a004a,00000001) ret=14036a256 0032:Ret gdi32.SetMapMode() retval=00000001 ret=14036a256 0032:Call user32.GetWindowRect(00010078,0023d3c0) ret=140327e56 0032:Ret user32.GetWindowRect() retval=00000001 ret=140327e56 0032:trace:seh:NtRaiseException code=c0000005 flags=0 addr=(nil) ip=0 tid=0032 0032:trace:seh:NtRaiseException info[0]=0000000000000000 0032:trace:seh:NtRaiseException info[1]=0000000000000000 0032:trace:seh:NtRaiseException rax=000000000023d3e0 rbx=0000000000000000 rcx=0000000000010078 rdx=0000000000000000 0032:trace:seh:NtRaiseException rsi=000000000023f4a0 rdi=00000000000a004a rbp=000000000023d450 rsp=000000000023d3d8 0032:trace:seh:NtRaiseException r8=000000000023d468 r9=000000000023f498 r10=00000000000001e0 r11=00000000000000d7 0032:trace:seh:NtRaiseException r12=0000000000040054 r13=00000000003d87d0 r14=000000000004004f r15=0000000000010078 0032:trace:seh:RtlVirtualUnwind type 1 rip 14036a305 rsp 23d3e0 0032:trace:seh:dump_unwind_info **** func 369ca0-36a799 --- snip ---
The following stubs are missing, not being resolved:
* GetTouchInputInfo * CloseTouchInputHandle * GetGestureInfo
Even if not referenced I would add:
* UnregisterTouchWindow
for consistency too.
https://msdn.microsoft.com/en-us/library/windows/desktop/dd317318(v=vs.85).a...
One Win7+ Touch Input API is already there -> RegisterTouchWindow
https://msdn.microsoft.com/en-us/library/windows/desktop/dd317326(v=vs.85).a...
Added with: https://source.winehq.org/git/wine.git/commitdiff/6458aca761f56dffcdf117e814... ("user32: Add a stub for RegisterTouchWindow.")
Tidbit: The app seems to be Wine aware.
--- snip --- ... 0032:Call KERNEL32.GetModuleHandleA(140fef0a0 "ntdll") ret=1401474a1 0032:Ret KERNEL32.GetModuleHandleA() retval=7bc80000 ret=1401474a1 0032:Call KERNEL32.GetProcAddress(7bc80000,140fef0a8 "wine_get_version") ret=1401474b6 0032:Ret KERNEL32.GetProcAddress() retval=7bc90228 ret=1401474b6 ... --- snip ---
$ sha1sum r4_win_x64_160830.zip 37ca7030812854cc8c4e18da3af57db1b0d24c2c r4_win_x64_160830.zip
$ du -sh r4_win_x64_160830.zip 245M r4_win_x64_160830.zip
$ wine --version wine-2.13-94-g5d9a4c4dbd
Regards
https://bugs.winehq.org/show_bug.cgi?id=43480
--- Comment #2 from Austin English austinenglish@gmail.com --- https://source.winehq.org/patches/data/136377 https://source.winehq.org/patches/data/136379 https://source.winehq.org/patches/data/136378
https://bugs.winehq.org/show_bug.cgi?id=43480
--- Comment #3 from Austin English austinenglish@gmail.com --- (In reply to Austin English from comment #2)
https://source.winehq.org/patches/data/136377 https://source.winehq.org/patches/data/136379 https://source.winehq.org/patches/data/136378
https://source.winehq.org/git/wine.git/commitdiff/9d6bcf3c8c1070903d331d4a2c... https://source.winehq.org/git/wine.git/commitdiff/24cea1b77baadf0d220618859c... https://source.winehq.org/git/wine.git/commitdiff/797a746fc2a1b17d67b7423293...
https://bugs.winehq.org/show_bug.cgi?id=43480
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |797a746fc2a1b17d67b7423293e | |081e3e7171033 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
Win7+ Touch Input API stubs got added, thanks Austin.
--- snip --- ... 0031:Call KERNEL32.GetModuleHandleA(01494af4 "user32.dll") ret=005cbdfb 0031:Ret KERNEL32.GetModuleHandleA() retval=7ebb0000 ret=005cbdfb 0031:Call KERNEL32.GetProcAddress(7ebb0000,014bf690 "RegisterTouchWindow") ret=005cbe06 0031:Ret KERNEL32.GetProcAddress() retval=7ebbb160 ret=005cbe06 0031:Call KERNEL32.GetModuleHandleA(01494af4 "user32.dll") ret=005cbdfb 0031:Ret KERNEL32.GetModuleHandleA() retval=7ebb0000 ret=005cbdfb 0031:Call KERNEL32.GetProcAddress(7ebb0000,014bf6a4 "GetTouchInputInfo") ret=005cbe06 0031:Ret KERNEL32.GetProcAddress() retval=7ebba0e0 ret=005cbe06 0031:Call KERNEL32.GetModuleHandleA(01494af4 "user32.dll") ret=005cbdfb 0031:Ret KERNEL32.GetModuleHandleA() retval=7ebb0000 ret=005cbdfb 0031:Call KERNEL32.GetProcAddress(7ebb0000,014bf6b8 "CloseTouchInputHandle") ret=005cbe06 0031:Ret KERNEL32.GetProcAddress() retval=7ebb8628 ret=005cbe06 0031:Call KERNEL32.GetModuleHandleA(01494af4 "user32.dll") ret=005cbdfb 0031:Ret KERNEL32.GetModuleHandleA() retval=7ebb0000 ret=005cbdfb 0031:Call KERNEL32.GetProcAddress(7ebb0000,014bf6d0 "GetGestureInfo") ret=005cbe06 0031:Ret KERNEL32.GetProcAddress() retval=7ebb9990 ret=005cbe06 0031:Call user32.RegisterTouchWindow(00010078,00000000) ret=0089c04a 0031:fixme:win:RegisterTouchWindow (0x10078 00000000): stub 0031:Ret user32.RegisterTouchWindow() retval=00000000 ret=0089c04a ... --- snip ---
The application still crashes with plain Wine but that's due to the stupidity of the vendor.
--- snip --- 00794E5B PUSH OFFSET 014BF1EC ; ASCII "UpdateLayeredWindow" 00794E60 CALL 005CBDF0 ; resolve API 00794E65 ADD ESP,4 00794E68 MOV DWORD PTR DS:[161925C],EAX 00794E6D TEST EAX,EAX 00794E6F JNE 00794CEE ... 008D9F32 PUSH 2 008D9F34 MOV DWORD PTR SS:[EBP-8C],EDX 008D9F3A MOV DWORD PTR SS:[EBP-20E0],EAX 008D9F40 XOR EAX,EAX 008D9F42 MOV EDX,DWORD PTR SS:[EBP-24] 008D9F45 PUSH ECX 008D9F46 MOV BYTE PTR SS:[EBP-56],DL 008D9F49 LEA EDX,[EBP-20E4] 008D9F4F PUSH EAX 008D9F50 MOV DWORD PTR SS:[EBP-80],ESI 008D9F53 LEA ESI,[EBP-84] 008D9F59 MOV BYTE PTR SS:[EBP-55],1 008D9F5D MOV BYTE PTR SS:[EBP-57],AL 008D9F60 MOV BYTE PTR SS:[EBP-58],AL 008D9F63 PUSH EDX 008D9F64 PUSH DWORD PTR DS:[EDI+0A0] 008D9F6A PUSH ESI 008D9F6B LEA EDI,[EBP-8C] 008D9F71 PUSH EDI 008D9F72 PUSH EAX 008D9F73 PUSH DWORD PTR SS:[EBP-20] 008D9F76 CALL DWORD PTR DS:[161925C] ; UpdateLayeredWindow() 008D9F7C JMP SHORT 008D9FB0 ... --- snip ---
--- snip --- ... 005CC150 PUSH OFFSET 01494B00 ; ASCII "ntdll" 005CC155 CALL DWORD PTR DS:[<&KERNEL32.GetModuleHandleA>] 005CC15B TEST EAX,EAX 005CC15D JE SHORT 005CC176 005CC15F PUSH OFFSET 01494B08 ; ASCII "wine_get_version" 005CC164 PUSH EAX 005CC165 CALL DWORD PTR DS:[<&KERNEL32.GetProcAddress>] 005CC16B MOV EDX,1 005CC170 TEST EAX,EAX 005CC172 CMOVNE EAX,EDX 005CC175 RETN ... --- snip ---
If Wine is detected it doesn't try to dynamically resolve layered windows API Not all call sites of late-bound layered windows API are checked for NULL pointers. Talk about shooting yourself in the foot...
You need to use Wine-Staging with 'Hide Wine version from applications' option enabled.
Regards
https://bugs.winehq.org/show_bug.cgi?id=43480
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.15.