This is the mail archive of the gdb@sources.redhat.com 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]

[5.1/GNU/Linux/SPARC] Single step problem


Hello,

		Ref: the attatched.

There are really two GNU/Linux/SPARC problems:

	o	sparc32

		Software single step broken

	o	sparc64

		New target

I think the main thing to worry about for 5.1 is the sparc32 problem.

One additional data point on this.  I submitted a patch to multi-arch
SOFTWARE_SINGLE_STEP().  During initial testing I botched it and built a
software single steping solaris GDB.  I found that it had lousy test
results.

Consequently, I'm wondering if the Linux/SPARC problem is generic and
perhaphs it crept in as a result of another change.

	Andrew


On May 20, 2000, Alexandre Oliva <aoliva@cygnus.com> wrote:

> On GNU/Linux/sparc, it builds correctly, but it still doesn't work
> :-( child_resume is called with step==1, and aborts because
> SOFTWARE_SINGLE_STEP_P is also 1.

This patch fixes this problem, and now it appears to work (not that I
have tested it extensively!)

The problem was that, when resume issued the software single step
command, it cleared `step'.  Later on, it would test whether step was
zero and think it had been asked to `continue'.  Ok to install?

Index: gdb/ChangeLog
from  Alexandre Oliva  <aoliva@cygnus.com>

	* infrun.c (resume): Do not change continue to step if we single
	step on software.

Index: gdb/infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.6.2.2
diff -u -r1.6.2.2 infrun.c
--- gdb/infrun.c	2000/04/20 11:00:29	1.6.2.2
+++ gdb/infrun.c	2000/05/20 09:39:27
@@ -902,7 +902,7 @@
 	    }
 	  else
 	    {
-	      if (!step)
+	      if (!SOFTWARE_SINGLE_STEP_P && !step)
 		{
 		  warning ("Internal error, changing continue to step.");
 		  remove_breakpoints ();

-- 
Alexandre Oliva    Enjoy Guaranį, see http://www.ic.unicamp.br/~oliva/
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{lsd.ic.unicamp.br, gnu.org}   Write to mailing lists, not to me




Alexandre Oliva wrote:
> 
> On May 20, 2000, Alexandre Oliva <aoliva@cygnus.com> wrote:
> 
> >       * infrun.c (resume): Do not change continue to step if we single
> >       step on software.
> 
> > Index: gdb/infrun.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/infrun.c,v
> > retrieving revision 1.6.2.2
> > diff -u -r1.6.2.2 infrun.c
> > --- gdb/infrun.c      2000/04/20 11:00:29     1.6.2.2
> > +++ gdb/infrun.c      2000/05/20 09:39:27
> > @@ -902,7 +902,7 @@
> >           }
> >         else
> >           {
> > -           if (!step)
> > +           if (!SOFTWARE_SINGLE_STEP_P && !step)
> >               {
> >                 warning ("Internal error, changing continue to step.");
> >                 remove_breakpoints ();
> 
> I'm not sure I understood the final decision regarding this patch.
> Should I check it in or not?

No.  I'm not comfortable with it.  I would like to know why
sunos/sparc and solaris/sparc etc. never needed this change.
It seems to me that other SOFTWARE_SINGLE_STEP_P targets must
have dealt with the situation differently, and probably 
linux/sparc needs to do whatever they were doing.




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