This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Gdb complaints Incomplete CFI data; unspecified registers


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.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]