patches/gdb/6.8/130-reg-no-longer-active.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Oct 03 23:10:46 2010 +0200 (2010-10-03)
changeset 2130 b46ecc90d3ab
permissions -rw-r--r--
complibs: better deduce whether to backup complibs or not

To decide whether we need to backup the companion libraries,
do not rely on the !shared case. In the future other cases
may require not to save the companion libraries (eg. if using
the ones provided by the host distro).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 Fix bug reported by Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
     2 See: http://sourceware.org/ml/crossgcc/2009-05/msg00055.html
     3      https://bugzilla.redhat.com/show_bug.cgi?id=436037
     4 
     5 Fix from: http://cvs.fedoraproject.org/viewvc/devel/gdb/gdb-6.8-bz436037-reg-no-longer-active.patch?revision=1.1
     6 
     7 diff -d -urpN src.0/gdb/valops.c src.1/gdb/valops.c
     8 --- src.0/gdb/valops.c	2008-07-27 04:00:03.000000000 +0200
     9 +++ src.1/gdb/valops.c	2008-07-31 15:17:42.000000000 +0200
    10 @@ -813,10 +813,18 @@ value_assign (struct value *toval, struc
    11  	struct frame_info *frame;
    12  	int value_reg;
    13  
    14 -	/* Figure out which frame this is in currently.  */
    15 -	frame = frame_find_by_id (VALUE_FRAME_ID (toval));
    16  	value_reg = VALUE_REGNUM (toval);
    17  
    18 +	/* Figure out which frame this is in currently.  */
    19 +	frame = frame_find_by_id (VALUE_FRAME_ID (toval));
    20 +	/* "set $reg+=1" should work on programs with no debug info,
    21 +	   but frame_find_by_id returns NULL here (RH bug 436037).
    22 +	   Use current frame, it represents CPU state in this case.
    23 +	   If frame_find_by_id is changed to do it internally
    24 +	   (it is contemplated there), remove this.  */
    25 +	if (!frame)
    26 +	  frame = get_current_frame ();
    27 +	/* Probably never happens.  */
    28  	if (!frame)
    29  	  error (_("Value being assigned to is no longer active."));
    30