Gdb complaints Incomplete CFI data; unspecified registers

Andrew Cagney cagney@gnu.org
Tue Jan 4 20:39:00 GMT 2005


H. J. Lu wrote:
> Gdb 6.3 generates many

What does your .gdbinit contain? "set complaints 1"?

> (gdb) bt
> #0  loc_descriptor (rtl=0xb7d671d4, can_use_fbreg=1 '\001')
>     at /net/gnu/export/gnu/src/gcc/gcc/gcc/dwarf2out.c:8737
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813b181.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813b181.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813b181.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813b181.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813b181.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813b181.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813b181.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813b181.
> #1  0x0813c15e in add_location_or_const_value_attribute
> (die=0xb7d66784,
>     decl=0xb7d6021c, attr=DW_AT_location)
>     at /net/gnu/export/gnu/src/gcc/gcc/gcc/dwarf2out.c:10041
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813c0c9.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813c0c9.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813c0c9.
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0x0813c0c9.
> 
> on binaries generated by gcc 4.0. According to the comments in gdb 6.3:
> 
>         /* NOTE: cagney/2003-09-05: CFI should specify the disposition
>            of all debug info registers.  If it doesn't, complain (but
>            not too loudly).  It turns out that GCC assumes that an
>            unspecified register implies "same value" when CFI (draft
>            7) specifies nothing at all.  Such a register could equally
>            be interpreted as "undefined".  Also note that this check
>            isn't sufficient; it only checks that all registers in the
>            range [0 .. max column] are specified, and won't detect
>            problems when a debug info register falls outside of the
>            table.  We need a way of iterating through all the valid
>            DWARF2 register numbers.  */
>         if (fs->regs.reg[column].how == DWARF2_FRAME_REG_UNSPECIFIED)
>           complaint (&symfile_complaints,
>                      "Incomplete CFI data; unspecified registers at
> 0x%s",
>                      paddr (fs->pc));
> 
> it is intentional. My question is why gdb generates those annoying
> messages at all if it can detect the code is generated by gcc.
> 
> 
> H.J.
> 



More information about the Gdb mailing list