Does Wine still handle SIGSEGV to implement something like Windows memory management?
At 10:47 15/06/01 +0200, Heiko Nardmann wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
I am continously getting a dialog "Nicht genügend Arbeitsspeicher oder unzureichender Speicherplatz, um Word auszuführen" (German version). After trying to examine this problem with debugmsg all (without real success) I added an strace call to the whole call. This resulted in a log file which tells me that a SIGSEGV occurrs. Here is a part of the strace log file which contains the SIGSEGV message. After that the appropriate 'debugmsg all' part follows. What can be done to shed more light onto this problem?
strace log:
write(2, "08069280:trace:win32:_LeaveSysLe"..., 112) = 112 write(2, "08069280:Ret user32.CreateWindo"..., 68) = 68 write(2, "08069280:RET mso97.486: _MsoCre"..., 84) = 84 write(2, "08069280:trace:heap:HeapFree (40"..., 74) = 74 write(2, "08069280:Call kernel32.GetVersio"..., 49) = 49 write(2, "08069280:Ret kernel32.GetVersio"..., 65) = 65 write(2, "08069280:Call kernel32.GetVersio"..., 60) = 60 write(2, "08069280:Ret kernel32.GetVersio"..., 68) = 68 write(2, "08069280:Call kernel32.GlobalMem"..., 65) = 65 time(NULL) = 992531763 time(NULL) = 992531763 open("/proc/meminfo", O_RDONLY) = 11 fstat(11, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4035c000 read(11, " total: used: free:"..., 1024) = 319 read(11, "", 1024) = 0 close(11) = 0 munmap(0x4035c000, 4096) = 0 write(2, "08069280:Ret kernel32.GlobalMem"..., 73) = 73 write(2, "08069280:CALL mso97.394: _MsoFCr"..., 147) = 147 write(2, ") ret=30011010\n", 15) = 15 write(2, "08069280:Call kernel32.VirtualAl"..., 86) = 86 write(2, "08069280:trace:virtual:VirtualAl"..., 68) = 68 mmap2(NULL, 131072, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOSYS (Function not implemented) old_mmap(NULL, 131072, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40e90000 munmap(0x40ea0000, 65536) = 0 write(2, "View: 40e90000 - 40e9ffff (vallo"..., 35) = 35 write(2, " 40e90000 - 40e9ffff -----\n", 32) = 32 write(2, "08069280:Ret kernel32.VirtualAl"..., 67) = 67 write(2, "08069280:Call kernel32.VirtualAl"..., 86) = 86 write(2, "08069280:trace:virtual:VirtualAl"..., 68) = 68 write(2, "08069280:trace:virtual:VIRTUAL_S"..., 63) = 63 mprotect(0x40e90000, 4096, PROT_READ|PROT_WRITE) = 0 write(2, "View: 40e90000 - 40e9ffff (vallo"..., 35) = 35 write(2, " 40e90000 - 40e90fff c-rW-\n", 32) = 32 write(2, " 40e91000 - 40e9ffff -----\n", 32) = 32 write(2, "08069280:Ret kernel32.VirtualAl"..., 67) = 67
- --- SIGSEGV (Speicherzugriffsfehler) ---
write(2, "08069280:RET mso97.394: _MsoFCr"..., 126) = 126 rt_sigprocmask(SIG_BLOCK, [HUP INT ALRM IO], [], 8) = 0 write(5, "F\0\0\0\0\0\34\1<\0336@\1\0\0\0\304\357\17@\0\0\0\0\0\0"..., 64)
= 64
read(6, "F\0\0\0\0\0\34\1\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 write(2, "08069280:trace:seh:EXC_CallHandl"..., 87) = 87 write(2, "08069280:trace:seh:EXC_RtlUnwind"..., 55) = 55 write(2, "08069280:trace:seh:EXC_CallHandl"..., 87) = 87 write(2, "08069280:trace:seh:EXC_CallHandl"..., 54) = 54
- --- SIGSEGV (Speicherzugriffsfehler) ---
write(2, "08069280:trace:seh:EXC_RtlRaiseE"..., 63) = 63 rt_sigprocmask(SIG_BLOCK, [HUP INT ALRM IO], [], 8) = 0 write(5, "F\0\0\0\0\0\34\1<\0336@\1\0\0\0\304\357\17@\0\0\0\0\0\0"..., 64)
= 64
read(6, "F\0\0\0\0\0\34\1\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
wine debug log:
08069280:trace:win32:_LeaveSysLevel (0x40753a74, level 2): thread 0x8069280 (fs 008f, pid 24063) count after 0 08069280:Ret user32.CreateWindowExW() retval=00000138 ret=306cc216 08069280:RET mso97.486: _MsoCreateMonitorWindow@0() retval = 00000000 ret=3000162f 08069280:trace:heap:HeapFree (40360000,00000002,403a4a80): returning TRUE 08069280:Call kernel32.GetVersion() ret=30001984 08069280:Ret kernel32.GetVersion() retval=05650004 ret=30001984 08069280:Call kernel32.GetVersionExA(405c686c) ret=300019b5 08069280:Ret kernel32.GetVersionExA() retval=00000001 ret=300019b5 08069280:Call kernel32.GlobalMemoryStatus(405c6900) ret=300019e2 08069280:Ret kernel32.GlobalMemoryStatus() retval=405c6900 ret=300019e2 08069280:CALL mso97.394: _MsoFCreateIPref@28(<unknown, check return>08069280:trace:heap:HeapAlloc (40360000,00000002,00000040): returning 403a4b98 ) ret=30011010 08069280:Call kernel32.VirtualAlloc(00000000,0000fffc,00002000,00000001) ret=3070b360 08069280:trace:virtual:VirtualAlloc 00000000 0000fffc 2000 00000001 View: 40e90000 - 40e9ffff (valloc) 40e90000 - 40e9ffff ----- 08069280:Ret kernel32.VirtualAlloc() retval=40e90000 ret=3070b360 08069280:Call kernel32.VirtualAlloc(40e90000,00001000,00001000,00000004) ret=3070b38b 08069280:trace:virtual:VirtualAlloc 40e90000 00001000 1000 00000004 08069280:trace:virtual:VIRTUAL_SetProt 40e90000-40e90fff c-rW- View: 40e90000 - 40e9ffff (valloc) 40e90000 - 40e90fff c-rW- 40e91000 - 40e9ffff ----- 08069280:Ret kernel32.VirtualAlloc() retval=40e90000 ret=3070b38b 08069280:RET mso97.394: _MsoFCreateIPref@28(30011020,00000000,08069280:trace:seh:EXC_RtlRaiseExcept
ion
code=c0000005 flags=0 08069280: queue_exception_event( first=1, record={context={flags=00000000,eax=00000000,ebx=400fefc4,ecx=4d535744,edx=
00000000,esi=00000000,edi=00000007,ebp=405c6790,eip=400c8aca,esp=405c66cc,ef lags=00010246,cs=0023,ds=002b,es=002b,fs=008f,gs=0000,dr0=00000000,dr1=00000 000,dr2=00000000,dr3=00000000,dr6=00000000,dr7=00000000,float={00000000,0000 0000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 ,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,000 00000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000 0,00000000}},rec={code=c0000005,flags=0,rec=(nil),addr=0x400c8aca,params={0, 4d535744}}
) 08069280: queue_exception_event() = 0 { handle=0 } 08069280:trace:seh:EXC_CallHandler calling handler at 0x4005b520 code=c0000005 flags=0 08069280:trace:seh:EXC_RtlUnwind code=c0000005 flags=2 08069280:trace:seh:EXC_CallHandler calling handler at 0x4005ad80 code=c0000005 flags=2 08069280:trace:seh:EXC_CallHandler handler returned 1 08069280:trace:seh:EXC_RtlRaiseException code=c0000005 flags=0 08069280: queue_exception_event( first=1, record={context={flags=00000000,eax=00000000,ebx=400fefc4,ecx=4d535744,edx=
00000000,esi=00000000,edi=00000007,ebp=405c6790,eip=400c8baa,esp=405c66cc,ef lags=00010246,cs=0023,ds=002b,es=002b,fs=008f,gs=0000,dr0=00000000,dr1=00000 000,dr2=00000000,dr3=00000000,dr6=00000000,dr7=00000000,float={00000000,0000 0000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 ,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,000 00000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000 0,00000000}},rec={code=c0000005,flags=0,rec=(nil),addr=0x400c8baa,params={0, 4d535744}}
) 08069280: queue_exception_event() = 0 { handle=0 } 08069280:trace:seh:EXC_CallHandler calling handler at 0x4005b520 code=c0000005 flags=0 08069280:trace:seh:EXC_RtlUnwind code=c0000005 flags=2 08069280:trace:seh:EXC_CallHandler calling handler at 0x4005ad80 code=c0000005 flags=2 08069280:trace:seh:EXC_CallHandler handler returned 1
Heiko Nardmann (Dipl.-Ing.), h.nardmann@secunet.de, Software Development secunet Security Networks AG - Sicherheit in Netzwerken (www.secunet.de), Weidenauer Str. 223-225, D-57076 Siegen Tel. : +49 271 48950-13, Fax : +49 271 48950-50 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org
iD8DBQE7KcuPpm53PRScYygRAlfZAJ91r/8CwDzWpu0TU0vB+FRP18w14QCg4sCK GBnoWm0xkKgHgFucJcNrsno= =8hel -----END PGP SIGNATURE-----