]> git.ipfire.org Git - people/pmueller/ipfire-3.x.git/blobdiff - gdb/patches/gdb-6.8-bz436037-reg-no-longer-active.patch
gdb: Update to 7.3.50.20110722.
[people/pmueller/ipfire-3.x.git] / gdb / patches / gdb-6.8-bz436037-reg-no-longer-active.patch
diff --git a/gdb/patches/gdb-6.8-bz436037-reg-no-longer-active.patch b/gdb/patches/gdb-6.8-bz436037-reg-no-longer-active.patch
new file mode 100644 (file)
index 0000000..4987714
--- /dev/null
@@ -0,0 +1,25 @@
+Index: gdb-6.8.50.20090803/gdb/valops.c
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/valops.c      2009-08-04 06:30:45.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/valops.c   2009-08-04 06:33:05.000000000 +0200
+@@ -926,10 +926,18 @@ value_assign (struct value *toval, struc
+       struct gdbarch *gdbarch;
+       int value_reg;
+-      /* Figure out which frame this is in currently.  */
+-      frame = frame_find_by_id (VALUE_FRAME_ID (toval));
+       value_reg = VALUE_REGNUM (toval);
++      /* Figure out which frame this is in currently.  */
++      frame = frame_find_by_id (VALUE_FRAME_ID (toval));
++      /* "set $reg+=1" should work on programs with no debug info,
++         but frame_find_by_id returns NULL here (RH bug 436037).
++         Use current frame, it represents CPU state in this case.
++         If frame_find_by_id is changed to do it internally
++         (it is contemplated there), remove this.  */
++      if (!frame)
++        frame = get_current_frame ();
++      /* Probably never happens.  */
+       if (!frame)
+         error (_("Value being assigned to is no longer active."));