Hi
Thanks for the explanation, this makes sense now.
I haven't actually tested if the cfa value (ms_context.Rsp) is valid, I
also see no reason why it shouldn't be.
What does it take for your patch to be accepted? What's the minimum gcc
version where it will be available?
Best regards
Kirill
On 08.09.20 17:34, Martin Storsjö wrote:
Hi,
On Tue, 8 Sep 2020, Kirill Müller wrote:
Thanks for the heads up. The coincidence is funny -- a file that
hasn't been touched for years.
I think we both may originally be triggered from the same guy asking
around in different places about implementations of _Unwind_Backtrace
for windows, actually.
I do believe that we need the logic around the `first` flag for
consistency with the other unwind-*.c implementations.
Yes, if you store ms_context.Rip/Rsp before the RtlVirtualUnwind step
- but my patch stores them afterwards; after RtlVirtualUnwind, before
calling the callback.
The result should be the same, except if using the first flag
approach, I believe you're missing the last frame that is printed if
using my patch.
// Martin