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

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


commit d7181112aa0f05facfc3f36daf0303c3cbe82fc3
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date:   Thu Aug 19 11:01:51 2010 +0200

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

 gdb-upstream.patch |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 gdb.spec           |    5 ++++-
 2 files changed, 53 insertions(+), 1 deletions(-)
---
diff --git a/gdb-upstream.patch b/gdb-upstream.patch
index fa26730..e16f47f 100644
--- a/gdb-upstream.patch
+++ b/gdb-upstream.patch
@@ -378,3 +378,52 @@ Index: gdb-7.1.90.20100806/gdb/testsuite/gdb.python/python.exp
 +    }
 +}
 +gdb_test "q" "Quit" "verify pagination afterwards: q"
+
+
+
+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 38a1483..c4e1301 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -38,7 +38,7 @@ Version: 7.1.90.20100806
 
 # 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: 10%{?_with_upstream:.upstream}%{dist}
+Release: 11%{?_with_upstream:.upstream}%{dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
 Group: Development/Debuggers
@@ -1064,6 +1064,9 @@ fi
 %endif
 
 %changelog
+* Thu Aug 19 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.1.90.20100806-11.fc14
+- Fix crash on MI variable calling inferior function (BZ 610986).
+
 * Tue Aug 10 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.1.90.20100806-10.fc14
 - Fix /usr/bin/gdb-add-index missing -nx for gdb.
 - New option --with profile (disabled by default - missing workload, BZ 615603).


More information about the scm-commits mailing list