[Bug target/28854] unwinder reports sentinel frame.

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Oct 24 14:45:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28854

--- Comment #5 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-24 14:44:49 UTC ---
Just FYI, this is due to the fact that _start from /usr/crt1.o has a FDE:

$ objdump --dwarf  /usr/lib/crt1.o 

/usr/lib/crt1.o:     file format elf64-alpha

Contents of the .eh_frame section:

00000000 00000010 00000000 CIE
  Version:               1
  Augmentation:          "zR"
  Code alignment factor: 4
  Data alignment factor: -8
  Return address column: 15
  Augmentation data:     1b

  DW_CFA_def_cfa_register: r30
  DW_CFA_nop

00000014 00000010 00000018 FDE cie=00000000 pc=00000000..0000003c
  DW_CFA_advance_loc: 20 to 00000014
  DW_CFA_def_cfa_register: r15

This FDE of _start function is discovered by uw_frame_state_for, and only after
this recursion

  if (context->ra == 0)
    return _URC_END_OF_STACK;

is triggered.

So if there is a bug at all, it is in glibc - perhaps_start should not set FDE.



More information about the Gcc-bugs mailing list