This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch 4/8] Types GC [varobj_list to all_root_varobjs]


On Sunday 05 July 2009 Jan Kratochvil wrote:

> On Thu, 02 Jul 2009 12:09:39 +0200, Vladimir Prus wrote:
> > On Thursday 02 July 2009 Jan Kratochvil wrote:
> > > Is it OK to check it in, Vladimir?  The patch would go in unchanged:
> > > 	http://sourceware.org/ml/gdb-patches/2009-05/msg00547.html
> > 
> > Is this cleanup-only patch?
> 
> Yes.
> 
> > I am a bit concerned that it appears to increase code size,
> 
> all_root_varobjs fully replaced the varobj_list function which just could not
> be deleted as it was still used by varobj_invalidate.  varobj_invalidate was
> rewritten in a later patch where varobj_list could be finally dropped:
> 	[patch 8/8] Types GC [varobj]
> 	http://sourceware.org/ml/gdb-patches/2009-05/msg00551.html

Is that patch awaiting review, or some newer version is forthcoming?

> > > The `floating' lockup will get fixed by a later patch using this new
> > > all_root_varobjs function.   A testcase for it was in a now-obsolete patch:
> > > 	[patch] Fix gdb.mi hang on floating VAROBJs
> > > 	http://sourceware.org/ml/gdb-patches/2009-05/msg00433.html
> > > This patch itself still does not fix it.
> > 
> > IIUC, the varobj_invalidate problem can be fixed with a small patch below.
> 
> Yes, such patch works.
> 
> Sending also a code style fixup on top of your fix to make the code more safe
> preventing such errors in the future.
> 
> Please provide a ChangeLog entry to your fix, check it in 

It now checked in, as attached.

> and approve the
> fixup + a testcase below.

This is OK, thanks.

> The all_root_varobjs patch / VEC rewrite I will re-send afterwards.

OK.

Thanks,
Volodya
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.10694
diff -u -p -r1.10694 ChangeLog
--- ChangeLog	7 Jul 2009 08:47:09 -0000	1.10694
+++ ChangeLog	7 Jul 2009 08:50:02 -0000
@@ -1,5 +1,12 @@
 2009-07-07  Vladimir Prus  <vladimir@codesourcery.com>
 
+	Fix hang in floating varobjs.
+
+	* varob.c (varobj_invalidate): Advance to next
+	element when processing floating varobj.
+
+2009-07-07  Vladimir Prus  <vladimir@codesourcery.com>
+
 	* varobj.c: Remove unnecessary include.
 
 2009-07-07  Tristan Gingold  <gingold@adacore.com>
Index: varobj.c
===================================================================
RCS file: /cvs/src/src/gdb/varobj.c,v
retrieving revision 1.140
diff -u -p -r1.140 varobj.c
--- varobj.c	7 Jul 2009 08:47:10 -0000	1.140
+++ varobj.c	7 Jul 2009 08:50:02 -0000
@@ -3231,8 +3231,10 @@ varobj_invalidate (void)
 	  /* Floating varobjs are reparsed on each stop, so we don't care if
 	     the presently parsed expression refers to something that's gone.
 	     */
-	  if ((*varp)->root->floating)
+	  if ((*varp)->root->floating) {
+	    varp++;
 	    continue;
+	  }
 
 	  /* global var must be re-evaluated.  */     
 	  if ((*varp)->root->valid_block == NULL)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]