https://sourceware.org/bugzilla/show_bug.cgi?id=27954
Bug ID: 27954 Summary: Exception handling info garbled on x86_64-w64-mingw32 Product: binutils Version: 2.35.2 Status: UNCONFIRMED Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: dominik_strasser at mentor dot com Target Milestone: --- I am having a long standing issue with exception handling on x86_64-w64-mingw32. The symptom is that I am getting a crash in ntdll!RtlUnwindEx when unwinding the stack between a thrown assertion and the catch handler. I am suspecting an issue in binutils(ld) because the crash vanishes when I bind a different program with the identical objects. I ran my program through wine which gives some additional information, namely an illegal EH information: 020c:fixme:seh:RtlVirtualUnwind unknown unwind info version 4 at 00000000080E350C 020c:fixme:seh:dump_unwind_info **** func 4cc6d40-4cc712f 020c:fixme:seh:dump_unwind_info unwind info at 00000000080E350C flags 0 prolog 0xd0 bytes function 00000000050C6D40-00000000050C712F 020c:fixme:seh:dump_unwind_info 0x1: PUSH_MACHFRAME 0 020c:fixme:seh:dump_unwind_info 0x6: pushq %rax 020c:fixme:seh:dump_unwind_info CHANIN 0 According to all documentation I found, only version 1 and 2 are legal values. Additionally wine prints: 020c:fixme:seh:PUSH_MACHFRAME is not the last opcode. I cannot provide an example as a lot of source code is involved, but I can compile binutils myself, and do any experiment you like. -- You are receiving this mail because: You are on the CC list for the bug.