patches/gdb/6.8/130-reg-no-longer-active.patch
author Arnaud Lacombe <lacombar@gmail.com>
Tue Aug 03 06:17:51 2010 +0200 (2010-08-03)
changeset 2064 f5ebe8c429dc
permissions -rw-r--r--
libc/uClibc: add uClibc 0.9.30.3

This version has been released a couple of month ago, but it never reached
crosstool-ng tree. This may be linked to the fact that the current 0.9.30.2,
once patched, has nothing much different from 0.9.30.3, released.

I'm not including any patch with this upgrade, on purpose.

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