REALLY old backwards compatability and Wine

Segin segin2005 at gmail.com
Sat Apr 22 10:36:05 CDT 2006


This is a email that serves multiple purposes, and you all may find 
intersting.

Wine, as we all know, is able to load and run native programs that the 
real McCoy can't run, but these programs are also close to 20 years old, 
so nobody really cares anyways.

That's right, programs for Windows 2.0

I recently downloaded a full distrib (bin+src) of one such program. It 
is a xeyes clone with color. Orignally, it worked in Wine, showing a 
large window with a pair of eyes that followed the cursor, with a 
blue-green background (the part where the "eyes" aren't drawn in the window)

This program was running in a window, and this appears to be broken, as 
under the real McCoy, version 3.1 (*gasp!*), it runs minimized, cannot 
be restored, and modifies it's own icon to preform the eyes deal (with a 
grey "background", as described above).

I went to make sure that Wine wasn't broken, so I re-exec'd the binary, 
but only to get this:

First chance exception: page fault on write access to 0x000f0400 in 
32-bit code (0xb7df2e97).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
 EIP:b7df2e97 ESP:7fbff570 EBP:7fbff5b0 EFLAGS:00010246(   - 00      -RIZP1)
 EAX:00000000 EBX:7eee7ff0 ECX:00000023 EDX:00000000
 ESI:000f0400 EDI:000f0400
Stack dump:
0x7fbff570:  00000000 7eed0e49 000f0400 00000000
0x7fbff580:  0000008c 7ffd50f0 00010000 7ffb190b
0x7fbff590:  7ffdcc24 7fc94988 00000000 0000ffff
0x7fbff5a0:  0000f30f 7eee7ff0 00000000 00000001
0x7fbff5b0:  7fbff5bc 7eed158d 7eee7ff0 7fbff5dc
0x7fbff5c0:  7eee51c4 7eec0000 00000001 00000000
Backtrace:
=>1 0xb7df2e97 memset+0x37 in libc.so.6 (0xb7df2e97)
  2 0x7eed158d DllMain+0x22 in winedos (0x7eed158d)
  3 0x7eee51c4 in winedos (+0x251c4) (0x7eee51c4)
  4 0x7ffb0a2d call_dll_entry_point+0x15 in ntdll (0x7ffb0a2d)
  5 0x7ffb11f2 in ntdll (+0x211f2) (0x7ffb11f2)
  6 0x7ffb13c5 in ntdll (+0x213c5) (0x7ffb13c5)
  7 0x7ffb2d8c LdrLoadDll+0x5e in ntdll (0x7ffb2d8c)
  8 0x7fc6bab1 in kernel32 (+0x2bab1) (0x7fc6bab1)
  9 0x7fc6bb36 LoadLibraryExW+0x4f in kernel32 (0x7fc6bb36)
  10 0x7fc6bbe5 LoadLibraryExA+0x2d in kernel32 (0x7fc6bbe5)
  11 0x7fc6bc0b LoadLibraryA+0x1b in kernel32 (0x7fc6bc0b)
  12 0x7fc1f219 main+0xb7 in winevdm (0x7fc1f219)
  13 0x7fc1fb0b in winevdm (+0xfb0b) (0x7fc1fb0b)
  14 0x7fc730f3 in kernel32 (+0x330f3) (0x7fc730f3)
  15 0xb7ee654b wine_switch_to_stack+0x17 in libwine.so.1 (0xb7ee654b)
0xb7df2e97 memset+0x37 in libc.so.6: repe stosl %es:(%edi)

Now, I am no debugger expert, but it appears that Wine is trying to 
write to a NULL pointer using memset. (I could be reading the stack dump 
wrong, bear with me here)

I hope this helps.



More information about the wine-devel mailing list