This is the mail archive of the 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] Multi-architecture debugging regression (Re: performance of multithreading gets gradually worse under gdb)

On Wednesday 26 October 2011 18:14:11, Ulrich Weigand wrote:
> Pedro Alves wrote:
> > 2011-02-04  Pedro Alves  <>
> > 
> > 	gdb/
> > 	* regcache.c (registers_changed_ptid): Don't explictly always
> > 	clear `current_regcache'.  Only clear current_thread_ptid and
> > 	current_thread_arch when PTID matches.  Only reinit the frame
> > 	cache if PTID matches the current inferior_ptid.  Move alloca(0)
> > 	call to ...
> > 	(registers_changed): ... here.
> It seems this patch broke multi-architecture debugging on Cell/B.E. since
> the cached thread architecture is sometimes not invalidated when it should
> be.  This happens when resume is called with a PTID that refers to all
> threads of a process.
> The problem is that your patch specifically handles PTIDs that refer to
> one particular thread, and also handles a wildcard PTID that refers to
> all threads of all processes.  But it does not handle PTIDs that refer
> to all threads of one single process.
> I think the code should simply use ptid_match here (as is already done
> elsewhere, even in this same function).  This fixes the problem on
> Cell/B.E. for me ...
> Tested on powerpc-linux (Cell/B.E.).
> Does this look OK to you?

Yes, thanks.

Pedro Alves

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