[Bug 23222] DiE (Detect it Easy) crashes with unhandled page fault

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Jun 19 03:24:19 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=23222





--- Comment #6 from Anastasius Focht <focht at gmx.net>  2010-06-19 03:24:18 ---
Hello,

looks like Wine doesn't process the trace/breakpoint trap signal correctly on
your Linux distro (openSUSE xx?).

"bad" sequence (your system):

--- snip ---
0009:Starting process L"Z:\\home\\ole\\Desktop\\die\\DiE.exe"
(entryproc=0x535e0c)
0009:Call KERNEL32.GetProcAddress(51fc92b3,004003df "") ret=00535e6a
0009:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=00535e6a
0009:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7bc7134a
ip=7bc7134a tid=0009
0009:trace:seh:raise_exception  info[0]=00000000
0009:trace:seh:raise_exception  info[1]=00536000
0009:trace:seh:raise_exception  eax=0033fa70 ebx=7bca7ff4 ecx=00536000
edx=0033fe9c esi=0033fe44 edi=0033fb78
0009:trace:seh:raise_exception  ebp=0033feb8 esp=0033fa40 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00210246
0009:trace:seh:call_vectored_handlers calling handler at 0x7e2c13b0
code=c0000005 flags=0
0009:trace:seh:call_vectored_handlers handler at 0x7e2c13b0 returned 0
0009:trace:seh:call_stack_handlers calling handler at 0x7bc88440 code=c0000005
flags=0
0009:trace:seh:__regs_RtlUnwind code=c0000005 flags=2
0009:trace:seh:__regs_RtlUnwind calling handler at 0x7bc71040 code=c0000005
flags=2
0009:trace:seh:__regs_RtlUnwind handler at 0x7bc71040 returned 1
0009:trace:seh:raise_exception code=c0000005 flags=0 addr=0x536000 ip=00536000
tid=0009
0009:trace:seh:raise_exception  info[0]=00000000
0009:trace:seh:raise_exception  info[1]=00536000
0009:trace:seh:raise_exception  eax=004b8001 ebx=ce6f3711 ecx=00000000
edx=000000b2 esi=7ffdf000 edi=00535e0c
0009:trace:seh:raise_exception  ebp=0033feb8 esp=0033fe9c cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00210286
0009:trace:seh:call_vectored_handlers calling handler at 0x7e2c13b0
code=c0000005 flags=0
0009:trace:seh:call_vectored_handlers handler at 0x7e2c13b0 returned 0
0009:trace:seh:call_stack_handlers calling handler at 0x535023 code=c0000005
flags=0
0009:Call KERNEL32.GetProcAddress(3dbe146c,00400775
"\xc8\xfcH\x0c\x8dg\x06\x0f\xb6\xe1\x15Y\xeb\x18\xca\xeb\x14$&\x06\x98\x01?\x05@;\x0f\x85Y\xf42\r\x0f\x1e\x14l\x10\x8b\x90\x86\x8b\xda\x8e\x81\x02\xef\xde\x81\xfe~")
ret=00535044
0009:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=00535044 
--- snip ---

The first exception after GetProcAddress() should be a single step exception
because an "int 1" instruction is encountered.
The app installed an SEH at 0x535023 that should get called at this point.

With your system, either in ntdll's raise_trap_exception(), raise_exception()
or surrounding code, Wine itself causes a page fault, swallowing the single
step exception internally.
Because the app's SEH is never called, the execution resumes at next
instruction causing "runaway" execution.
The app code following after "int 1" is meaningless, it should never been
reached.
Execution reaches unmapped area, causing another page fault (0x536000) where it
goes completely out of hands (due to false assumptions).

"good" sequence (my system, Fedora 12):

--- snip ---
003b:Starting process L"C:\\die\\die.exe" (entryproc=0x535e0c)
003b:Call KERNEL32.GetProcAddress(51fc92b3,004003df "") ret=00535e6a
003b:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=00535e6a
003b:trace:seh:raise_exception code=80000004 flags=0 addr=0x535f9f ip=00535f9f
tid=003b
003b:trace:seh:raise_exception  eax=004b8001 ebx=ce672411 ecx=00000000
edx=000000b2 esi=7ffdf000 edi=00535e0c
003b:trace:seh:raise_exception  ebp=0032fea8 esp=0032fe8c cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000206
003b:trace:seh:call_vectored_handlers calling handler at 0x798370f0
code=80000004 flags=0
003b:trace:seh:call_vectored_handlers handler at 0x798370f0 returned 0
003b:trace:seh:call_stack_handlers calling handler at 0x535023 code=80000004
flags=0
003b:Call KERNEL32.GetProcAddress(3dbe146c,00400775
"\xc8\xfcH\x0c\x8dg\x06\x0f\xb6\xe1\x15Y\xeb\x18\xca\xeb\x14$&\x06\x98\x01?\x05@;\x0f\x85Y\xf42\r\x0f\x1e\x14l\x10\x8b\x90\x86\x8b\xda\x8e\x81\x02\xef\xde\x81\xfe~")
ret=00535044
003b:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=00535044
003b:trace:seh:raise_exception code=80000004 flags=0 addr=0x5350b2 ip=005350b2
tid=003b
003b:trace:seh:raise_exception  eax=00000386 ebx=7bc90286 ecx=005350d2
edx=c0000135 esi=0032fe34 edi=0032fe8c
003b:trace:seh:raise_exception  ebp=0032fa48 esp=0032fe8c cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000213
003b:trace:seh:call_vectored_handlers calling handler at 0x798370f0
code=80000004 flags=0
003b:trace:seh:call_vectored_handlers handler at 0x798370f0 returned 0
003b:trace:seh:call_stack_handlers calling handler at 0x5350d2 code=80000004
flags=0
...
--- snip ---

Maybe another Wine user with openSUSE could confirm this problem, specifying
exact Kernel, Glibc, Gcc version and compile flags used to build Wine (if any
special for distro).

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list