One problem with Wine has been that there were few serious open source win32 applications out there to test Wine with (ok, maybe my opinions are from 1997 :-) In any case, we have some great open source Win32 applications to test with. AbiWord is one. I just tried installing AbiWord 0.9 under the latest Codeweavers preview. The install worked -- but generated about a billion warnings of the sort fixme:file:SetFileAttributesA (C:\Program Files\AbiSuite\COPYING.TXT):2000 attribute(s) not implemented. fixme:file:SetFileAttributesA (C:\Program Files\AbiSuite\askrm.exe):2000 attribute(s) not implemented. (no biggie) plus the error fixme:pthread_kill_other_threads_np Wine failed with return code 139 That seems like it's worth fixing. Running the app itself generated the warnings fixme:msvcrt:MSVCRT__setjmp3 :(0x40376048 0): stub fixme:msvcrt:MSVCRT__setjmp3 :(0x40376048 0): stub fixme:msvcrt:MSVCRT__setjmp3 :(0x40376a78 0): stub fixme:msvcrt:MSVCRT__setjmp3 :(0x40376a78 0): stub fixme:scroll:ScrollBarWndProc Unimplemented style SBS_SIZEBOX. fixme:ddeml:DdeUninitialize (1): partial stub and the error err:dc:DCE_FreeWindowDCE [0278] GetDC() without ReleaseDC()! Seems like Wine should make it a priority to fix problems uncovered by friendly open source apps like AbiWord -- even though there's a perfectly good native version of AbiWord for Linux. Why? Precisely because AbiWord is cross-platform, you could write a test script that would run AbiWord through its paces, simulating keystrokes and mouse motion, and then saving a file; you could then run that script both on the native Linux version and also on the Win32 version via Wine; and in the end, both should save identical files. And that would be a pretty cool regression test. Comments? - Dan -- "I have seen the future, and it licks itself clean." -- Bucky Katt
> I just tried installing AbiWord 0.9 under the latest > Codeweavers preview.does Codeweavers have any form of setup utils for things like printers? I've never goetten mine to work with wine.
Linux abiword 0.9 works great, and can load a simple Word document no problem. Windows abiword 0.9 running under Windows ME also works fine. However, Windows abiword 0.9 under Codeweavers Preview 4 Wine was unable to load the same .doc file, whether from the commandline or from the File/Open menu. This is with a no-Windows installation on Red Hat 6.2, and also with a no-Windows installation on Red Hat 7.1. Loading a plain text file works (modulo some horrible display problems mentioned elsewhere), so the app is not completely hosed. The error message when loading a simple Word file, whether from the commandline or using "File / Open", is of the form No such file '#6\V@#6@\V@' Debug logs at http://www.kegel.com/wine/abiword0.9/ Here's what looks like the interesting excerpt of a run where I tried to load "idetic_mutual_NDA.doc": Invoking /opt/wine/bin/wine.bin -debugmsg warn+all,+relay,+text,+string AbiWord.exe idetic_mutual_NDA.doc ... -- snip -- 080682e0:Ret msvcrt.toupper() retval=0000004e ret=004def8a 080682e0:Call msvcrt.toupper(00000000) ret=004def8a 080682e0:Ret msvcrt.toupper() retval=00000000 ret=004def8a 080682e0:Call msvcrt.calloc(00000038,00000001) ret=004f44d7 080682e0:Call kernel32.HeapAlloc(40360000,00000008,00000038) ret=4081fad4 080682e0:Ret kernel32.HeapAlloc() retval=404287e8 ret=4081fad4 080682e0:Ret msvcrt.calloc() retval=404287e8 ret=004f44d7 080682e0:Call kernel32.CreateFileA(4039f568 "idetic_mutual_NDA.doc",c0000000,00000003,00000000,00000003,00000080,00000000) ret=4081d07c trace:string:lstrcpynA (0x4059527c, "/home/dank/.wine/fake_windows", 1024) trace:string:lstrcpynA (0x4059529a, "Program Files/AbiSuite/AbiWord/bin", 994) trace:string:lstrcpynA (0x4059567f, "PROG~FBU\\ABISUITE\\ABIWORD\\BIN", 1021) 080682e0:Ret kernel32.CreateFileA() retval=00000034 ret=4081d07c 080682e0:Call msvcrt._fstat(00000003,40595b58) ret=004e25d3 080682e0:Call kernel32.GetFileInformationByHandle(00000034,40595a7c) ret=4081cb34 080682e0:Ret kernel32.GetFileInformationByHandle() retval=00000001 ret=4081cb34 fixme:msvcrt:_fstat :dwFileAttributes = 32, mode set to 0 080682e0:Call ntdll.RtlTimeToSecondsSince1970(40595a88,40595a78) ret=4081cbb5 080682e0:Ret ntdll.RtlTimeToSecondsSince1970() retval=00000001 ret=4081cbb5 080682e0:Call ntdll.RtlTimeToSecondsSince1970(40595a90,40595a78) ret=4081cbc8 080682e0:Ret ntdll.RtlTimeToSecondsSince1970() retval=00000001 ret=4081cbc8 080682e0:Ret msvcrt._fstat() retval=00000000 ret=004e25d3 080682e0:Call msvcrt.malloc(00000021) ret=004f4495 080682e0:Call kernel32.HeapAlloc(40360000,00000000,00000021) ret=4081fb28 080682e0:Ret kernel32.HeapAlloc() retval=4045cbfc ret=4081fb28 080682e0:Ret msvcrt.malloc() retval=4045cbfc ret=004f4495 080682e0:Call msvcrt.vsprintf(4045cbfc,006087c0 "No such file '%s'\n",40595b74) ret=004f4dd9 080682e0:Ret msvcrt.vsprintf() retval=00000020 ret=004f4dd9 080682e0:Call msvcrt.__p__iob() ret=004f4429 080682e0:Ret msvcrt.__p__iob() retval=4082f160 ret=004f4429 080682e0:Call msvcrt.fputs(4045cbfc "No such file 'h\3659@\010\\Y@h\3659@\024\\Y@'\n",4082f1a0) ret=004f4434 080682e0:Call kernel32.WriteFile(0000000c,4045cbfc,00000020,40595a78,00000000) ret=4081dd26 No such file 'h?9@\Y@h?9@\Y@' 080682e0:Ret kernel32.WriteFile() retval=00000001 ret=4081dd26 080682e0:Ret msvcrt.fputs() retval=00000000 ret=004f4434 080682e0:Call msvcrt.__p__iob() ret=004f4439 080682e0:Ret msvcrt.__p__iob() retval=4082f160 ret=004f4439 080682e0:Call msvcrt.fflush(4082f1a0) ret=004f4443 080682e0:Call kernel32.FlushFileBuffers(0000000c) ret=4081c506 080682e0:Ret kernel32.FlushFileBuffers() retval=00000000 ret=4081c506 080682e0:Ret msvcrt.fflush() retval=00000000 ret=004f4443 080682e0:Call msvcrt.free(4045cbfc) ret=004ded5f 080682e0:Call kernel32.HeapFree(40360000,00000000,4045cbfc) ret=4081faff 080682e0:Ret kernel32.HeapFree() retval=00000001 ret=4081faff 080682e0:Ret msvcrt.free() retval=00000001 ret=004ded5f 080682e0:Call msvcrt.free(404287e8) ret=004ded5f 080682e0:Call kernel32.HeapFree(40360000,00000000,404287e8) ret=4081faff 080682e0:Ret kernel32.HeapFree() retval=00000001 ret=4081faff 080682e0:Ret msvcrt.free() retval=00000001 ret=004ded5f 080682e0:Call msvcrt.fopen(4039f568 "idetic_mutual_NDA.doc",00573cf4 "rb") ret=004e67c7 080682e0:Call kernel32.CreateFileA(4039f568 "idetic_mutual_NDA.doc",80000000,00000003,00000000,00000003,00000080,00000000) ret=4081d07c trace:string:lstrcpynA (0x405951f4, "/home/dank/.wine/fake_windows", 1024) trace:string:lstrcpynA (0x40595212, "Program Files/AbiSuite/AbiWord/bin", 994) trace:string:lstrcpynA (0x405955f7, "PROG~FBU\\ABISUITE\\ABIWORD\\BIN", 1021) 080682e0:Ret kernel32.CreateFileA() retval=00000038 ret=4081d07c 080682e0:Call kernel32.HeapAlloc(40360000,00000008,00000020) ret=4081fad4 080682e0:Ret kernel32.HeapAlloc() retval=404287e8 ret=4081fad4 080682e0:Ret msvcrt.fopen() retval=404287e8 ret=004e67c7 080682e0:Call msvcrt.getc(404287e8) ret=004e6a91 080682e0:Call kernel32.ReadFile(00000038,40595ac3,00000001,40595aa4,00000000) ret=4081d3a4 080682e0:Ret kernel32.ReadFile() retval=00000001 ret=4081d3a4 080682e0:Ret msvcrt.getc() retval=ffffffd0 ret=004e6a91 080682e0:Call ntdll.RtlRaiseException(40595b04) ret=40814056 080682e0:Call msvcrt._except_handler3(40595b04,40596ec0,4059590c,405958a8) ret=4005c430 Help... - Dan -- "I have seen the future, and it licks itself clean." -- Bucky Katt
Windows abiword 0.9 running under Windows ME looks great, seems to be able to load simple Microsoft Word files no problem. The same app was unusable under Wine because of significant display problems; typing one line of text was fine, but add a second line, and the text lies on top of itself, as if the Y increment between lines was far too small. This is with a no-Windows installation, btw, regardless of whether I'm running on Red Hat 6.2 or 7.1. Loading a plain text file from the commandline works but shows a few warnings, plus the horrible display problem mentioned above. I ran with -debugmsg warn+all,+relay,+text,+string and loaded a three-line text file containing just "line 1" on the first line, "line 2" on the second, etc. The resulting log is at http://www.kegel.com/wine/abiword0.9/log3.tar.gz The interesting part of the log is at http://www.kegel.com/wine/abiword0.9/log3x.txt Grepping the interesting part of the log for "line" and massaging a bit yields: 080682e0:Call gdi32.ExtTextOutW(00000f44,00000079,00000078,00000000,00000000,404343a0 L"line 1\01e9",00000006,00000000) ret=0048e02b trace:text:X11DRV_ExtTextOut hdc=0f44 df=0003 121,120 L"line 1"..., 6 flags=0 lpDx=(nil) trace:text:X11DRV_ExtTextOut real coord: x=121, y=120, rect=(1081280799,3908 - 65535,1081427236) trace:text:X11DRV_GetTextExtentPoint L"line 1"... 6 080682e0:Call gdi32.ExtTextOutW(00000f44,00000079,0000007a,00000000,00000000,404343a0 L"line 2\01e9",00000006,00000000) ret=0048e02b trace:text:X11DRV_ExtTextOut hdc=0f44 df=0003 121,122 L"line 2"..., 6 flags=0 lpDx=(nil) trace:text:X11DRV_GetTextExtentPoint L"line 2"... 6 trace:text:X11DRV_ExtTextOut real coord: x=121, y=122, rect=(1081280799,3908 - 65535,1081427236) 080682e0:Call gdi32.ExtTextOutW(00000f44,00000079,0000007d,00000000,00000000,404343a0 L"line 3\01e9",00000006,00000000) ret=0048e02b trace:text:X11DRV_ExtTextOut hdc=0f44 df=0003 121,125 L"line 3"..., 6 flags=0 lpDx=(nil) trace:text:X11DRV_ExtTextOut real coord: x=121, y=125, rect=(1081280799,3908 - 65535,1081427236) trace:text:X11DRV_GetTextExtentPoint L"line 3"... 6 The Y values of 120, 122, 125 for the three lines of text clearly show the line spacing problem, I think. Any suggestions? - Dan -- "I have seen the future, and it licks itself clean." -- Bucky Katt
Dan Kegel
2001-Aug-05 19:59 UTC
View menu corrupted with AbiWord 0.9 and Wine 20010731; heap errors?
AbiWord 0.9 for Win32 with either Codeweavers Preview 4 or Wine 20010731 compiled from source has an interesting problem: AbiWord's "View" menu name changes to "CERTIFIED EMAIL" the first time it is selected. This does not happen running AbiWord 0.8 for Win32 (exact same app) on Windows ME. I ran it with -debugmsg warn+all,+relay,+text,+string and saved the log file. You can see the change happening; after a certain point in the log file, "&View" no longer appears, and is replaced by "CERTIFIED EMAIL". The logs are online at http://www.kegel.com/wine/abiword0.9/ log4* See http://www.kegel.com/wine/abiword0.9/readme.txt for legend This is such an odd error that it makes me think "pointer bug". Wine does complain while running AbiWord about heap problems, with errors like this: warn:heap:HEAP_ValidateInUseArena Heap 40ab0000: invalid in-use arena magic for 40ab08ab warn:heap:HEAP_ValidateInUseArena Heap 40ab0000: invalid in-use arena magic for 40ab08ab warn:heap:HEAP_ValidateInUseArena Heap 40ab0000: invalid in-use arena magic for 40ab08e7 warn:heap:HEAP_ValidateInUseArena Heap 40ab0000: invalid in-use arena magic for 40ab08e7 warn:heap:HEAP_ValidateInUseArena Heap 40ab0000: invalid in-use arena magic for 40ab08e7 warn:heap:HEAP_IsRealArena Heap 0x40ab0000: block 0x488537 is not inside heap warn:heap:HEAP_IsRealArena Heap 0x40ab0000: block 0x488550 is not inside heap warn:heap:HEAP_IsRealArena Heap 0x40ab0000: block 0x488537 is not inside heap but then again, it complains like that when running sol.exe, too. What do those heap warnings mean? Thanks, Dan -- "I have seen the future, and it licks itself clean." -- Bucky Katt