[PATCH 2/7] ntdll: Factor out setup_raise_exception.
Jacek Caban
jacek at codeweavers.com
Wed Sep 4 05:44:15 CDT 2019
On 9/3/19 9:41 PM, Alexandre Julliard wrote:
> Jacek Caban <jacek at codeweavers.com> writes:
>
>> On 03/09/2019 21:11, Alexandre Julliard wrote:
>>> Jacek Caban <jacek at codeweavers.com> writes:
>>>
>>>> @@ -2818,24 +2819,27 @@ static EXCEPTION_RECORD *setup_exception( ucontext_t *sigcontext, raise_func fun
>>>> stack->rec.NumberParameters = 0;
>>>> save_context( &stack->context, sigcontext );
>>>> - /* store return address and %rbp without aligning, so that
>>>> the offset is fixed */
>>>> - rsp_ptr = (ULONG64 *)RSP_sig(sigcontext) - 16;
>>>> - *(--rsp_ptr) = RIP_sig(sigcontext);
>>>> - *(--rsp_ptr) = RBP_sig(sigcontext);
>>>> - *(--rsp_ptr) = RDI_sig(sigcontext);
>>>> - *(--rsp_ptr) = RSI_sig(sigcontext);
>>> Is there a reason for changing this part instead of moving it as is?
>>
>> It matters for patch 7. The debugger may change the context while
>> thread is sleeping in send_debug_event. I think we should use modified
>> values in this case.
> Yes, but why are you removing the "without aligning" part? Accessing
> the registers through the (aligned) structure is not going to use the
> correct offsets.
Oh, right, I messed that up. Sorry about that, I will send a fixed version.
Thanks,
Jacek
More information about the wine-devel
mailing list