[Bug 49254] Firefox 76.0 for win64-aarch64 crashes on startup (unwinding for "set thread name" MSVC exception 0x406D1388 fails)

WineHQ Bugzilla wine-bugs at winehq.org
Tue Jun 2 06:48:23 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=49254

--- Comment #1 from Anastasius Focht <focht at 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

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list