[gdb/f12/master] - Fix crash on MI variable calling inferior function (BZ 610986).

Jan Kratochvil jkratoch at fedoraproject.org
Thu Aug 19 09:02:23 UTC 2010


commit f6d64e73ff2d60178ea0684ec948a17baf3dcf1c
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date:   Thu Aug 19 11:02:06 2010 +0200

    - Fix crash on MI variable calling inferior function (BZ 610986).

 gdb-7.0-upstream.patch |   49 ++++++++++++++++++++++++++++++++++++++++++++++++
 gdb.spec               |    5 +++-
 2 files changed, 53 insertions(+), 1 deletions(-)
---
diff --git a/gdb-7.0-upstream.patch b/gdb-7.0-upstream.patch
index 669de91..2f2fc2b 100644
--- a/gdb-7.0-upstream.patch
+++ b/gdb-7.0-upstream.patch
@@ -512,3 +512,52 @@ http://sourceware.org/ml/gdb-cvs/2010-02/msg00142.html
    public int dothat (int x) {
      int y = x + 3;
      System.out.println ("new value is " + y);
+
+
+
+https://bugzilla.redhat.com/show_bug.cgi?id=610986
+http://sourceware.org/ml/gdb-cvs/2010-08/msg00112.html
+
+### src/gdb/ChangeLog	2010/08/18 22:57:45	1.12097
+### src/gdb/ChangeLog	2010/08/19 07:34:26	1.12098
+## -1,3 +1,9 @@
++2010-08-19  Jan Kratochvil  <jan.kratochvil at redhat.com>
++
++	* varobj.c (varobj_create): Replace variable old_fi with old_id,
++	initialize it by null_frame_id, wrap its usage by get_frame_id,
++	frame_id_p and frame_find_by_id.
++
+ 2010-08-18  Tom Tromey  <tromey at redhat.com>
+ 
+ 	PR python/11900:
+--- src/gdb/varobj.c	2010/08/06 14:17:56	1.159
++++ src/gdb/varobj.c	2010/08/19 07:34:27	1.160
+@@ -524,7 +524,7 @@ varobj_create (char *objname,
+ {
+   struct varobj *var;
+   struct frame_info *fi;
+-  struct frame_info *old_fi = NULL;
++  struct frame_id old_id = null_frame_id;
+   struct block *block;
+   struct cleanup *old_chain;
+ 
+@@ -611,7 +611,7 @@
+ 
+ 	  var->root->frame = get_frame_id (fi);
+ 	  var->root->thread_id = pid_to_thread_id (inferior_ptid);
+-	  old_fi = get_selected_frame (NULL);
++	  old_id = get_frame_id (get_selected_frame (NULL));
+ 	  select_frame (fi);	 
+ 	}
+ 
+@@ -639,8 +639,8 @@
+       var->root->rootvar = var;
+ 
+       /* Reset the selected frame */
+-      if (old_fi != NULL)
+-	select_frame (old_fi);
++      if (frame_id_p (old_id))
++	select_frame (frame_find_by_id (old_id));
+     }
+ 
+   /* If the variable object name is null, that means this
diff --git a/gdb.spec b/gdb.spec
index 25bc51d..444075b 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -36,7 +36,7 @@ Version: 7.0.1
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 49%{?_with_upstream:.upstream}%{dist}
+Release: 50%{?_with_upstream:.upstream}%{dist}
 
 License: GPLv3+
 Group: Development/Debuggers
@@ -1108,6 +1108,9 @@ fi
 %endif
 
 %changelog
+* Thu Aug 19 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0.1-50.fc12
+- Fix crash on MI variable calling inferior function (BZ 610986).
+
 * Tue Jul 20 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0.1-49.fc12
 - Fix prelinked executables with sepdebug and copy relocations (BZ 614659).
 - [delayed-symfile] Fix a backtrace regression on CFIs without DIE (BZ 614604).


More information about the scm-commits mailing list