patches/gdb/6.3/790-debian_dwarf2-cfi-warning.patch
changeset 330 447b203edc2e
parent 329 419d959441ed
child 331 0c05f9ea3254
     1.1 --- a/patches/gdb/6.3/790-debian_dwarf2-cfi-warning.patch	Tue Aug 14 19:32:22 2007 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,39 +0,0 @@
     1.4 -Status: Unsuitable for upstream (at least, without a lot of arguing).
     1.5 -
     1.6 -GCC does not specify the state of every last register in the CIE.  Since
     1.7 -GCC's focus is on correctness of runtime unwinding, any registers which
     1.8 -have to be unwound will be specified; but unmodified registers will not
     1.9 -be explicitly marked.  (How about modified, call-clobbered registers?
    1.10 -I'm not sure if they are marked as unavailable.)
    1.11 -
    1.12 -GDB issues a noisy warning about this.  The warning is generally not useful,
    1.13 -and we can get it extremely frequently (any time we load a new CIE).
    1.14 -
    1.15 -This patch disables the warning.  Alternately we could set the complaints
    1.16 -threshold to zero, or implement a default frame init-register method for
    1.17 -every architecture.  But someday the compiler will support using different
    1.18 -calling conventions for internal functions, so that's not much of a stopgap. 
    1.19 -ARM has a complex algorithm for handling this, involving scanning all CIEs -
    1.20 -benefit not completely clear outside of the ARM context of flexible register
    1.21 -sets.
    1.22 -
    1.23 -Index: gdb-6.3/gdb/dwarf2-frame.c
    1.24 -===================================================================
    1.25 ---- gdb-6.3.orig/gdb/dwarf2-frame.c	2004-11-15 11:54:57.000000000 -0500
    1.26 -+++ gdb-6.3/gdb/dwarf2-frame.c	2004-12-08 18:02:23.896409471 -0500
    1.27 -@@ -705,9 +705,12 @@ dwarf2_frame_cache (struct frame_info *n
    1.28 - 	   table.  We need a way of iterating through all the valid
    1.29 - 	   DWARF2 register numbers.  */
    1.30 - 	if (fs->regs.reg[column].how == DWARF2_FRAME_REG_UNSPECIFIED)
    1.31 --	  complaint (&symfile_complaints,
    1.32 --		     "Incomplete CFI data; unspecified registers at 0x%s",
    1.33 --		     paddr (fs->pc));
    1.34 -+	  {
    1.35 -+	    if (0)
    1.36 -+	      complaint (&symfile_complaints,
    1.37 -+			 "Incomplete CFI data; unspecified registers at 0x%s",
    1.38 -+			 paddr (fs->pc));
    1.39 -+	  }
    1.40 - 	else
    1.41 - 	  cache->reg[regnum] = fs->regs.reg[column];
    1.42 -       }