Bug 106814 - gdb complains about incomplete CFI data
gdb complains about incomplete CFI data
Status: CLOSED INSUFFICIENT_DATA
Product: Fedora
Classification: Fedora
Component: gdb (Show other bugs)
rawhide
i686 Linux
medium Severity medium
: ---
: ---
Assigned To: Jan Kratochvil
bzcl34nup
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2003-10-10 16:30 EDT by Diego Novillo
Modified: 2008-05-06 19:57 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-05-06 19:57:20 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Diego Novillo 2003-10-10 16:30:03 EDT
Description of problem:

When stopping at breakpoints and using step/next, gdb emits
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.


Version-Release number of selected component (if applicable):

GNU gdb Red Hat Linux (5.3.90-0.20030710.40rh)


How reproducible:

Always.


Steps to Reproduce:
Get files cc1 and a.c from
http://torweb.toronto.redhat.com/~dnovillo/pub/gdb-5.3.90-0.20030710.40rh

$ gdb --args ./cc1 -O2 a.c
GNU gdb Red Hat Linux (5.3.90-0.20030710.40rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db
library "/lib/tls/libthread_db.so.1".

(gdb) b find_vars_r
Breakpoint 1 at 0x81014cb: file /home/dnovillo/tree-ssa-01/src/gcc/tree-dfa.c,
line 2429.
(gdb) run
Starting program: /home/dnovillo/public_html/pub/gdb-5.3.90-0.20030710.40rh/cc1
-O2 a.c
 foo

Breakpoint 1, find_vars_r (tp=0x40370af8, walk_subtrees=0xbfff89fc,
    data=0xbfff8a40) at /home/dnovillo/tree-ssa-01/src/gcc/tree-dfa.c:2429
2429      tree t = *tp;
(gdb) n
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
During symbol reading, Incomplete CFI data; unspecified registers at 0x08101509.
2430      struct walk_state *walk_state = (struct walk_state *)data;
Comment 1 Diego Novillo 2003-10-10 16:35:47 EDT
I've also uploaded tree-dfa.c.
Comment 2 Andrew Cagney 2003-10-10 17:14:09 EDT
Here is the comment that goes with the warning:

        /* 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.  Need a way of iterating through all the valid
           DWARF2 register numbers.  */

Note that the comment is out-of-date.  GCC assumes different things for
different registers and different ISAs.
Comment 3 Andrew Cagney 2005-01-24 18:07:01 EST
GCC's .gdbinit contains "set complaints 20".  Check the dwarf 2 list,
what GCC's doing is 'dodgy'.
Comment 4 Jan Kratochvil 2006-12-23 13:18:48 EST
http://gcc.gnu.org/ml/gcc/2006-12/msg00293.html

The strictly DWARF compliant gcc behavior would be to initialize all the callee
saved registers to `DW_CFA_same_value' in all the CIE initial instructions
blocks.  This is currently not done and it would introduce a large increase of
`.eh_frame' size, despite the merging of common CIEs.

http://gcc.gnu.org/ml/gcc/2006-12/msg00298.html

already specifies that the default rule is same_value for callee-saves registers

=>

Current `DWARF2_FRAME_REG_UNSPECIFIED' should get architecture specifically
reinitialized to either `DWARF2_FRAME_REG_SAME_VALUE' or
`DWARF2_FRAME_REG_UNDEFINED' depending on whether the register is callee-saved
or callee-unsaved, resp.
This problem applies upstream.

On the other hand priority of this handling is discussible.
Comment 5 Bug Zapper 2008-04-03 11:30:40 EDT
Based on the date this bug was created, it appears to have been reported
against rawhide during the development of a Fedora release that is no
longer maintained. In order to refocus our efforts as a project we are
flagging all of the open bugs for releases which are no longer
maintained. If this bug remains in NEEDINFO thirty (30) days from now,
we will automatically close it.

If you can reproduce this bug in a maintained Fedora version (7, 8, or
rawhide), please change this bug to the respective version and change
the status to ASSIGNED. (If you're unable to change the bug's version
or status, add a comment to the bug and someone will change it for you.)

Thanks for your help, and we apologize again that we haven't handled
these issues to this point.

The process we're following is outlined here:
http://fedoraproject.org/wiki/BugZappers/F9CleanUp

We will be following the process here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping to ensure this
doesn't happen again.
Comment 6 Bug Zapper 2008-05-06 19:57:18 EDT
This bug has been in NEEDINFO for more than 30 days since feedback was
first requested. As a result we are closing it.

If you can reproduce this bug in the future against a maintained Fedora
version please feel free to reopen it against that version.

The process we're following is outlined here:
http://fedoraproject.org/wiki/BugZappers/F9CleanUp

Note You need to log in before you can comment on or make changes to this bug.