Jacek Caban (@jacek) commented about dlls/ntdll/unix/signal_arm64.c:
- break; - case TRAP_BRKPT: - if (!(PSTATE_sig( sigcontext ) & 0x10) && /* AArch64 (not WoW) */ - !(PC_sig( sigcontext ) & 3)) - esr = make_esr( 0x3c, *(ULONG *)PC_sig( sigcontext ) >> 5 ); - break; - } + case TRAP_TRACE: + esr = make_esr( 0x33, 0 ); + break; + case TRAP_BRKPT: + if (!(PSTATE_sig( sigcontext ) & 0x10) && /* AArch64 (not WoW) */ + !(PC_sig( sigcontext ) & 3)) + esr = make_esr( 0x3c, *(ULONG *)PC_sig( sigcontext ) >> 5 ); + break; } This still uses leaked ESR for unhandled cases. We could ifdef `get_fault_esr` call and initialize esr to 0 on linux.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10843#note_139211