[PATCH 2/5] ntdll: Implement RtlWalkFrameChain() for x86 and x86_64.
Paul Gofman
pgofman at codeweavers.com
Fri Oct 22 08:53:17 CDT 2021
On 10/22/21 16:48, Giovanni Mascellani wrote:
> Hi,
>
> Il 21/10/21 18:03, Paul Gofman ha scritto:
>> + start = test_walk_stack;
>> + end = (BYTE *)start + 0x1000;
>> + todo_wine_if(sizeof(void *) == 4)
>> + ok(addrs[0] >= start && addrs[0] < end, "Address is not inside
>> test function, start %p, end %p, addr %p.\n",
>> + start, end, addrs[0]);
>> + todo_wine_if(sizeof(void *) == 4)
>> + ok(addrs2[0] >= start && addrs2[0] < end, "Address is not inside
>> test function, start %p, end %p, addr %p.\n",
>> + start, end, addrs2[0]);
>
> Another check you could do is whether addrs[1] ==
> __builtin_extract_return_addr(__builtin_return_address(0)). Probably
> you don't even need __builtin_extract_return_addr, because I think it
> is required only for architectures for which we do not compile anyway.
>
> Giovanni.
>
Yes, I could, but do you think another check is really needed? It feels
to me that might make the check more fragile than it already is. I'd
rather consider maybe just dropping such check if it will be considered
concerning. I added that only because I spotted the actual bug on x86
skipping the first frame and wanted to illustrate / verify that.
More information about the wine-devel
mailing list