http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47308
--- Comment #16 from Pawel Sikora <pluto at agmk dot net> 2011-03-22 20:03:09 UTC --- i've tested the latest 4.5 branch head. it produces less objdump errors but the core issue still exists. afaics the gdb-7.2 on win32 has problems with cfi_esacpes before ___main. _main: LFB598: .loc 1 21 0 .cfi_startproc .cfi_personality 0x0,___gxx_personality_sj0 .cfi_lsda 0x0,LLSDA598 leal 4(%esp), %ecx .cfi_def_cfa 1, 0 andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp .cfi_escape 0x10,0x5,0x2,0x75,0x0 pushl %edi pushl %esi pushl %ebx pushl %ecx .cfi_escape 0xf,0x3,0x75,0x70,0x6 subl $104, %esp movl $___gxx_personality_sj0, -68(%ebp) movl $LLSDA598, -64(%ebp) leal -60(%ebp), %eax leal -24(%ebp), %edx movl %edx, (%eax) movl $L8, %edx movl %edx, 4(%eax) movl %esp, 8(%eax) leal -92(%ebp), %eax movl %eax, (%esp) .cfi_escape 0x10,0x3,0x2,0x75,0x74 <==== gdb error. .cfi_escape 0x10,0x6,0x2,0x75,0x78 <==== .cfi_escape 0x10,0x7,0x2,0x75,0x7c <==== call __Unwind_SjLj_Register .loc 1 21 0 call ___main Breakpoint 1, main () at main.cpp:21 21 { (gdb) disassemble Dump of assembler code for function main(): 0x0040163c <+0>: lea 0x4(%esp),%ecx 0x00401640 <+4>: and $0xfffffff0,%esp 0x00401643 <+7>: pushl -0x4(%ecx) 0x00401646 <+10>: push %ebp 0x00401647 <+11>: mov %esp,%ebp 0x00401649 <+13>: push %edi 0x0040164a <+14>: push %esi 0x0040164b <+15>: push %ebx 0x0040164c <+16>: push %ecx 0x0040164d <+17>: sub $0x68,%esp 0x00401650 <+20>: movl $0x40b920,-0x44(%ebp) 0x00401657 <+27>: movl $0x40c03c,-0x40(%ebp) 0x0040165e <+34>: lea -0x3c(%ebp),%eax 0x00401661 <+37>: lea -0x18(%ebp),%edx 0x00401664 <+40>: mov %edx,(%eax) 0x00401666 <+42>: mov $0x401716,%edx 0x0040166b <+47>: mov %edx,0x4(%eax) 0x0040166e <+50>: mov %esp,0x8(%eax) 0x00401671 <+53>: lea -0x5c(%ebp),%eax 0x00401674 <+56>: mov %eax,(%esp) 0x00401677 <+59>: Dwarf Error: Cannot find signatured DIE referenced from DIE at 0x1397e could someone decrypt these magic cfi_escapes?