https://bugs.winehq.org/show_bug.cgi?id=49805
Bug ID: 49805 Summary: Pyxel Edit crashes when clicking the "File" dropdown option. Product: Wine Version: 5.16 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: blocker Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: ldhacker@live.com Distribution: ---
Created attachment 68127 --> https://bugs.winehq.org/attachment.cgi?id=68127 Pyxel Edit Backtrace
Pyxel Edit crashes when I click the "File" drop down menu. See attached back trace for further information.
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #1 from ldhacker@live.com --- I forgot to mention that I am using the latest stable version of Manjaro Linux with Kernel 5.8.6-1.
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ldhacker@live.com
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |ArchLinux
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #2 from ldhacker@live.com --- Just learned that, according to the installation instructions, Pyxel Edit recommends using the 32 bit zip file download for wine. I downloaded that version and it does not have this crash. Seems to be related only to the 64-bit version of Pyxel Edit.
https://bugs.winehq.org/show_bug.cgi?id=49805
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de Severity|blocker |normal
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- Not a blocker, please see https://bugs.winehq.org/page.cgi?id=fields.html#importance
Is there a free version to test with? Can you please attach a full log?
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #4 from ldhacker@live.com --- (In reply to Fabian Maurer from comment #3)
Not a blocker, please see https://bugs.winehq.org/page.cgi?id=fields.html#importance
Is there a free version to test with? Can you please attach a full log?
Unfortunately, the only free version is an older, unsupported beta here: https://pyxeledit.com/get.php
However, I would be willing to buy a gift license for someone else to test with.
Also, are you referring to the /home/ldhacker/.wine/drive_c/crash-handler.log?
I already deleted the application from wine and the file that I provided above was deleted with it. I can re-install and recreate the issue to recreate the log for you.
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #5 from ldhacker@live.com --- Created attachment 68128 --> https://bugs.winehq.org/attachment.cgi?id=68128 Crash-handler.log
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #6 from ldhacker@live.com --- Created attachment 68129 --> https://bugs.winehq.org/attachment.cgi?id=68129 More Detailed Log
I created this log using:
wine PyxelEdit.exe &> log.txt
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #68129|More Detailed Log |More Detailed Backtrace description| |
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #68127|0 |1 is obsolete| |
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #7 from Fabian Maurer dark.shadow4@web.de --- Could you attach a log using "WINEDEBUG=+relay wine PyxelEdit.exe &> log.txt"? Mind you, this will be slow and the log gets big, so please compress and then upload it.
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #68128|0 |1 is obsolete| |
--- Comment #8 from ldhacker@live.com --- Created attachment 68131 --> https://bugs.winehq.org/attachment.cgi?id=68131 Requested Log
This is the log that I created with the requested terminal command.
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #9 from ldhacker@live.com --- (In reply to Fabian Maurer from comment #7)
Could you attach a log using "WINEDEBUG=+relay wine PyxelEdit.exe &> log.txt"? Mind you, this will be slow and the log gets big, so please compress and then upload it.
Hopefully that is what you needed. I let it start and then clicked the file dropdown to make it crash. Then, compressed and uploaded.
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://pyxeledit.com/
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #10 from Fabian Maurer dark.shadow4@web.de --- Hum, don't see anything obviously wrong in there. But then again, I'm not good with remote debugging - maybe someone else can help.
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #11 from ldhacker@live.com --- (In reply to Fabian Maurer from comment #10)
Hum, don't see anything obviously wrong in there. But then again, I'm not good with remote debugging - maybe someone else can help.
If I provided you with a license, would you be able to directly debug?
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #12 from ldhacker@live.com --- Created attachment 68133 --> https://bugs.winehq.org/attachment.cgi?id=68133 DLL Debug Log
The DLL debug log leads me to believe the error resides in wininet.
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |wininet
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #13 from ldhacker@live.com --- "00ec:fixme:wininet:netcon_secure_connect_setup SECBUFFER_EXTRA not supported"
https://bugs.winehq.org/show_bug.cgi?id=49805
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox.xerox2000x@gmail.com
--- Comment #14 from Louis Lenders xerox.xerox2000x@gmail.com --- That the fixme is printed, does not mean it`s the cause of the crash
Maybe WINEDEBUG=+relay,+seh,+loaddll wine PyxelEdit.exe &> log.txt reveals a bit more?
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #15 from ldhacker@live.com --- Created attachment 68134 --> https://bugs.winehq.org/attachment.cgi?id=68134 Requested Log 2
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #16 from ldhacker@live.com --- (In reply to Louis Lenders from comment #14)
That the fixme is printed, does not mean it`s the cause of the crash
Maybe WINEDEBUG=+relay,+seh,+loaddll wine PyxelEdit.exe &> log.txt reveals a bit more?
There you go!
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|wininet |-unknown
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #17 from Louis Lenders xerox.xerox2000x@gmail.com --- As fabian, I don`t see anything obvious suspicious really; As the 32-bit version works I fear this requires much more effort to find the cause of crash.... Below is where things seem to go wrong apparently
00b8:Ret window proc 0x18058d270 (hwnd=0x10056,msg=WM_MENUSELECT,wp=00900000,lp=00010088) retval=00000000 00b8:Call user32.GetDpiForSystem() ret=7fc5793c4d56 00b8:Ret user32.GetDpiForSystem() retval=00000060 ret=7fc5793c4d56 00b8:Call window proc 0x18058d270 (hwnd=0x10056,msg=WM_INITMENUPOPUP,wp=0001008a,lp=00000000) 00b8:Call user32.GetWindowLongPtrW(00010056,ffffffeb) ret=18058d29f 00b8:Ret user32.GetWindowLongPtrW() retval=55a9c1fc0b0 ret=18058d29f 00b8:Call user32.GetWindowLongPtrW(00010056,ffffffeb) ret=1804fb3c3 00b8:Ret user32.GetWindowLongPtrW() retval=55a9c1fc0b0 ret=1804fb3c3 00b8:Call user32.GetMenuInfo(0001008a,0021be60) ret=180757020 00b8:Ret user32.GetMenuInfo() retval=00000001 ret=180757020 00b8:trace:seh:dispatch_exception code=c0000005 flags=0 addr=00000001807571AD ip=807571ad tid=00b8
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #18 from ldhacker@live.com --- https://docs.microsoft.com/en-us/windows/win32/menurc/wm-initmenu
https://docs.microsoft.com/en-us/windows/win32/menurc/wm-initmenupopup
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #19 from ldhacker@live.com --- https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getwin... States:
“ Note To write code that is compatible with both 32-bit and 64-bit versions of Windows, use GetWindowLongPtr. When compiling for 32-bit Windows, GetWindowLongPtr is defined as a call to the GetWindowLong function.”
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #20 from ldhacker@live.com --- As a side note, when I set winecfg to Windows 10, the menu that asks for an activation key pops up. When it is set to the default of Windows 7, that does not pop up. I think it may be due to the GetDpiForSystem() function, as https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdpi... states that this function only works in Windows 10.
The crash still occurs after opening the file menu though.
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |user32
https://bugs.winehq.org/show_bug.cgi?id=49805
ldhacker@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #68131|0 |1 is obsolete| |
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #21 from ldhacker@live.com --- Sorry if I am spamming everyone's email boxes.
I was looking through the program files of Pyxel Edit and found that it uses Adobe Air 1.0. (I assume this because the directory path is /.wine/drive_c/Program Files (x86)/PyxelEdit/Adobe AIR/Versions/1.0/)
Apparently, Adobe Air is now at version 32, and Linux support (I know this doesn't necessarily matter for this, since we're running in wine) was ended after version 2.6.
https://bugs.winehq.org/show_bug.cgi?id=49805
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|user32 |-unknown
--- Comment #22 from Fabian Maurer dark.shadow4@web.de --- Please don't guess the component, we don't really know what's the problem is.
If I provided you with a license, would you be able to directly debug?
Yes, but I'm probably not the best for that task. On the first glance, it seems tricky. Not sure if the problem is really user32 here, but it could be.
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #23 from ldhacker@live.com --- (In reply to Fabian Maurer from comment #22)
Please don't guess the component, we don't really know what's the problem is.
If I provided you with a license, would you be able to directly debug?
Yes, but I'm probably not the best for that task. On the first glance, it seems tricky. Not sure if the problem is really user32 here, but it could be.
I apologize for assuming the component.
I will get you a license anyway... you get free software and get to learn!
Also, just found this thread in the Pyxel Edit Forums:
https://pyxeledit.com/forum/discussion/comment/3244
https://bugs.winehq.org/show_bug.cgi?id=49805
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Component|-unknown |user32
--- Comment #24 from Fabian Maurer dark.shadow4@web.de --- (In reply to ldhacker from comment #23)
I will get you a license anyway... you get free software and get to learn!
Alright then, thanks for your trust.
Turns out, it wasn't as tricky as I thought, in hindsight it was pretty obvious. Anyways, the issue was one of the basic win64 problems - a pointer mistakenly being truncated to 32Bit.
Apologies, you got the component right with "user32".
I sent a patch here: https://source.winehq.org/patches/data/192408
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #25 from ldhacker@live.com --- (In reply to Fabian Maurer from comment #24)
(In reply to ldhacker from comment #23)
I will get you a license anyway... you get free software and get to learn!
Alright then, thanks for your trust.
Turns out, it wasn't as tricky as I thought, in hindsight it was pretty obvious. Anyways, the issue was one of the basic win64 problems - a pointer mistakenly being truncated to 32Bit.
Apologies, you got the component right with "user32".
I sent a patch here: https://source.winehq.org/patches/data/192408
Thank you! I am glad that I could help you get to the bottom of the issue!
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #26 from ldhacker@live.com --- (In reply to Fabian Maurer from comment #24)
(In reply to ldhacker from comment #23)
I will get you a license anyway... you get free software and get to learn!
Alright then, thanks for your trust.
Turns out, it wasn't as tricky as I thought, in hindsight it was pretty obvious. Anyways, the issue was one of the basic win64 problems - a pointer mistakenly being truncated to 32Bit.
Apologies, you got the component right with "user32".
I sent a patch here: https://source.winehq.org/patches/data/192408
If you don't mind me asking, what led you to this fix?
I just want to learn so maybe I can start to help fix issues. I do have a basic knowledge of C.
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #27 from Fabian Maurer dark.shadow4@web.de --- 1) Well, the crash happened right after "GetMenuInfo", so my first idea was to make GetMenuInfo always do nothing and see if it still works (it does).
2) Second was experience, pointer truncation is a common problem in 64Bit compatibility... And it worked in 32Bit. Just a hunch at this point.
3) GetMenuInfo returns a structure with details, one of them an application defined value. So I added a printf statement to output that value.
4) Turned out it crash address is almost the same to that value (a few 100 bytes difference). So that's our problem.
5) Either the program passed a wrong value (unlikely) or we changed it accidentally. I looked into the structure that stores it, and it's saved as DWORD (32Bit). That can't work.
6) Change the DWORD to DWORD_PTR and see if it helps. It does, so no second issue here.
Is that good enough? :D
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #28 from ldhacker@live.com --- (In reply to Fabian Maurer from comment #27)
- Well, the crash happened right after "GetMenuInfo", so my first idea was
to make GetMenuInfo always do nothing and see if it still works (it does).
- Second was experience, pointer truncation is a common problem in 64Bit
compatibility... And it worked in 32Bit. Just a hunch at this point.
- GetMenuInfo returns a structure with details, one of them an application
defined value. So I added a printf statement to output that value.
- Turned out it crash address is almost the same to that value (a few 100
bytes difference). So that's our problem.
- Either the program passed a wrong value (unlikely) or we changed it
accidentally. I looked into the structure that stores it, and it's saved as DWORD (32Bit). That can't work.
- Change the DWORD to DWORD_PTR and see if it helps. It does, so no second
issue here.
Is that good enough? :D
Yes, thank you! Now I have some research to do :)
https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #29 from ldhacker@live.com --- Just so everyone knows, one of the developers over at Pyxel Edit offered to give gift codes for testing. Here is a reference link: https://pyxeledit.com/forum/discussion/1588/0-4-7-wine-on-linux-anyone it is on the last comment in the thread.
https://bugs.winehq.org/show_bug.cgi?id=49805
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |93937a53f1a7675976b4bb7e70b | |96db231d77996 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #30 from Fabian Maurer dark.shadow4@web.de ---
Just so everyone knows, one of the developers over at Pyxel Edit offered to give gift codes for testing.
That's cool, please mention that in case you find another issue!
Fixed by https://source.winehq.org/git/wine.git/?a=commit;h=93937a53f1a7675976b4bb7e7...
https://bugs.winehq.org/show_bug.cgi?id=49805
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |win64
https://bugs.winehq.org/show_bug.cgi?id=49805
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #31 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.17.
https://bugs.winehq.org/show_bug.cgi?id=49805
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |5.0.x
https://bugs.winehq.org/show_bug.cgi?id=49805
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|5.0.x |---
--- Comment #32 from Michael Stefaniuc mstefani@winehq.org --- Removing the 5.0.x milestone from bug fixes included in 5.0.4.