https://bugs.winehq.org/show_bug.cgi?id=49254
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
recent commits from Martin to address unwinding for aarch64:
--- snip --- $ git log --pretty=format:"%n%h %s" --author "Martin Storsjo" --since "2020-05-27" --until "2020-06-01"
264bd4fc84 wine/asm.h: Don't define __ASM_CFI when using clang as cross compiler.
e0c8c4c3cd ntdll: Implement RtlRaiseException in assembly to fix continuing from exceptions.
763f15ccde ntdll: Fix unwinding through raise_generic_exception.
a8a944c220 ntdll: Keep the previous iteration of NonVolatileRegisters in call_function_handlers.
6c11d1d745 ntdll: Implement RtlRestoreContext.
c22e8645b0 wine/asm.h: Use __ASM_CFI on clang too, despite not defining __GCC_HAVE_DWARF2_CFI_ASM.
babbf352b6 ntdll: Fix unwinding functions that end with a branch instruction.
42a5885669 ntdll: Store the real stack pointer in RtlCaptureContext.
8e4f0b2a15 ntdll: Pass a nonnull handler_data in when continuing after a collided unwind.
d6e9795223 ntdll: Fix byte vs register units in unwind_packed_data.
8477f61b9f ntdll: Fix handling of the save_lrpair unwind opcode.
ad7fcd2c40 configure: Pass -fasynchronous-unwind-tables to the compiler. --- snip ---
Current state:
--- snip --- $ WINEDEBUG=+seh,+loaddll wine64 ./firefox.exe >>log.txt 2>&1 ... 01c8:trace:seh:raise_exception code=406d1388 flags=0 addr=0x7f851f0d18 pc=7f851f0d18 tid=01c8 01c8:trace:seh:raise_exception info[0]=0000000000001000 01c8:trace:seh:raise_exception info[1]=0000000007011630 01c8:trace:seh:raise_exception info[2]=00000000000001c8 01c8:trace:seh:raise_exception x0=000000001575fd58 x1=000000001575fe08 x2=0000000000000018 x3=000000001575fe08 01c8:trace:seh:raise_exception x4=000000001575fe20 x5=000000001575fd90 x6=0000000000001000 x7=0000000007011630 01c8:trace:seh:raise_exception x8=0000000000000003 x9=0000007f85b355e0 x10=0000000000000000 x11=0000000000000000 01c8:trace:seh:raise_exception x12=0000000007011630 x13=00000000000001c8 x14=0000000000000017 x15=0000000000000000 01c8:trace:seh:raise_exception x16=0000007f85b96008 x17=0000007f85c68dc0 x18=000000007ff88000 x19=0000000012c059f8 01c8:trace:seh:raise_exception x20=0000000012c1d250 x21=000000001575fee0 x22=0000000000000000 x23=0000000000000000 01c8:trace:seh:raise_exception x24=0000000000000000 x25=0000000000000000 x26=0000000000000000 x27=0000000000000000 01c8:trace:seh:raise_exception x28=0000000000000000 fp=000000001575fdf0 lr=0000007f851f0d18 sp=000000001575fd50 01c8:trace:seh:call_vectored_handlers calling handler at 0x59c24e0 code=406d1388 flags=0 01c8:trace:seh:call_vectored_handlers handler at 0x59c24e0 returned 0 01c8:trace:seh:libunwind_virtual_unwind ip 0x7f851f0d18 function 0x7f851f0cbc-0x7f851f0d24 personality 0 lsda 0 fde 0 01c8:trace:seh:libunwind_virtual_unwind next function pc=0000000004bb70f4 01c8:trace:seh:libunwind_virtual_unwind x0=000000001575fd58 x1=000000001575fe08 x2=0000000000000018 x3=000000001575fe08 01c8:trace:seh:libunwind_virtual_unwind x4=000000001575fe20 x5=000000001575fd90 x6=0000000000001000 x7=0000000007011630 01c8:trace:seh:libunwind_virtual_unwind x8=0000000000000003 x9=0000007f85b355e0 x10=0000000000000000 x11=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x12=0000000007011630 x13=00000000000001c8 x14=0000000000000017 x15=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x16=0000007f85b96008 x17=0000007f85c68dc0 x18=000000007ff88000 x19=0000000012c059f8 01c8:trace:seh:libunwind_virtual_unwind x20=0000000012c1d250 x21=000000001575fee0 x22=0000000000000000 x23=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x24=0000000000000000 x25=0000000000000000 x26=0000000000000000 x27=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x28=0000000000000000 fp=000000001575fe20 lr=0000000004bb70f4 sp=000000001575fe00 01c8:trace:seh:RtlVirtualUnwind type 1 pc 4bb70f4 sp 1575fe00 func 4bb70a0 01c8:trace:seh:unwind_full_data function 4bb70a0-4bb7128: len=0x22 ver=0 X=1 E=0 epilogs=1 codes=8 01c8:trace:seh:RtlVirtualUnwind ret: lr=4c499a0 sp=1575fe30 handler=(nil) 01c8:trace:seh:RtlVirtualUnwind type 1 pc 4c499a0 sp 1575fe30 func 4c49960 01c8:trace:seh:unwind_full_data function 4c49960-4c49d38: len=0xf6 ver=0 X=0 E=0 epilogs=1 codes=32 01c8:trace:seh:RtlVirtualUnwind ret: lr=4c6ceec sp=1575fec0 handler=(nil) 01c8:trace:seh:RtlVirtualUnwind type 1 pc 4c6ceec sp 1575fec0 func 4c6ceb0 01c8:trace:seh:unwind_full_data function 4c6ceb0-4c6cf20: len=0x1c ver=0 X=0 E=0 epilogs=1 codes=12 01c8:trace:seh:RtlVirtualUnwind ret: lr=7f85b3a7a0 sp=1575fee0 handler=(nil) 01c8:trace:seh:libunwind_virtual_unwind ip 0x7f85b3a7a0 function 0x7f85b3a704-0x7f85b3a7b8 personality 0 lsda 0 fde 0 01c8:trace:seh:libunwind_virtual_unwind next function pc=0000000000000000 (last frame) 01c8:trace:seh:libunwind_virtual_unwind x0=000000001575fd58 x1=000000001575fe08 x2=0000000000000018 x3=000000001575fe08 01c8:trace:seh:libunwind_virtual_unwind x4=000000001575fe20 x5=000000001575fd90 x6=0000000000001000 x7=0000000007011630 01c8:trace:seh:libunwind_virtual_unwind x8=0000000000000003 x9=0000007f85b355e0 x10=0000000000000000 x11=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x12=0000000007011630 x13=00000000000001c8 x14=0000000000000017 x15=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x16=0000007f85b96008 x17=0000007f85c68dc0 x18=000000007ff88000 x19=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x20=0000000000000000 x21=0000000000000000 x22=0000000000000000 x23=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x24=0000000000000000 x25=0000000000000000 x26=0000000000000000 x27=0000000000000000 01c8:trace:seh:libunwind_virtual_unwind x28=0000000000000000 fp=0000000000000000 lr=0000000000000000 sp=0000000015760000 01c8:trace:seh:call_function_handlers found wine frame 0x1575fee0 rsp 15760000 handler 0x7f85b557c0 01c8:trace:seh:call_teb_handler calling TEB handler 0x7f85b557c0 (rec=0x1575fd58, frame=0x1575fee0 context=0x1575ed80, dispatch=0x1575ec40) wine: Unhandled exception 0x406d1388 in thread 1c8 at address 0000007F851F0D18 (thread 01c8), starting debugger... 01c8:trace:seh:start_debugger Starting debugger L"winedbg --auto 372 404" --- snip ---
$ wine --version wine-5.9-240-g2a535f829f
Regards