July 4, 2025
2:20 p.m.
On Wed Jul 2 01:42:35 2025 +0000, Paul Gofman wrote: > > I think @gofman's suggestion is to restore all registers? > No, only non-volatile. As I understand what Alexandre suggests > correctly, it is better to just restore those in > call_user_mode_callback, in principle similar to what you did but: > - for all non-volatile regs; > - no need to pass additional parameters, you can get those right from frame. > I don't know if that is really necessary, but I personally would go for > some test for RtlVirtualUnwind called from window procedure (with > something like CreateWindow called from asm code to save non-volatile > registers before / after), to make sure we are getting it right. looks like I cannot unwind through user mode callback on native. unwind stops with a `STATUS_FATAL_USER_CALLBACK_EXCEPTION`. i can capture stacktrace though, which is not working on wine without this rbp fix. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8466#note_108849