[PATCH] ntdll/signal_i386.c: RtlCaptureContext locals + args are 12 bytes instead of 8 (return address + CONTEXT * arg + %eax local
bernhardloos at googlemail.com
Tue Sep 27 10:33:03 CDT 2011
On Tue, Sep 27, 2011 at 4:33 PM, Alexandre Julliard <julliard at winehq.org> wrote:
> Bernhard Loos <bernhardloos at googlemail.com> writes:
>> @@ -1181,7 +1181,7 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4,
>> __ASM_CFI(".cfi_adjust_cfa_offset 4\n\t")
>> "popl 0xc0(%eax)\n\t" /* context->EFlags */
>> __ASM_CFI(".cfi_adjust_cfa_offset -4\n\t")
>> - "leal 8(%esp),%edx\n\t"
>> + "leal 0xc(%esp),%edx\n\t"
>> "movl %edx,0xc4(%eax)\n\t" /* context->Esp */
> That's not really more correct, it's supposed to return the caller frame
> but there's no good way of doing that. What are you trying to fix?
Nothing specific. I noticed this yesterday, while trying to use this
function for RtlRaiseException, before you pointed out the register
Wouldn't it be better to rename this functions as it behaves
differently then the windows version so apps get an actual error
message instead of unexpected behavior?
> Alexandre Julliard
> julliard at winehq.org
More information about the wine-devel