This is the mail archive of the gdb-patches@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]

Re: RFA: [infrun.c] Fix to "nexti".


If there is a maintainer for this code please speak up.

Otherwise I will check this in under the "obvious fix" rule.

This thing is broken, is annoying lots of people and this patch
has been submitted (and reposted again) a long time ago.

Fernando


Fernando Nasser wrote:
> 
> Ping!
> 
> Fernando Nasser wrote:
> >
> > A "nexti" inside a function prologue currently == continue.
> > This has been broken for quite a while (24-Oct-95).
> >
> > Here is the fix.
> >
> >         * infrun.c (handle_inferior_event): Handle "nexti" inside function
> >         prologues.
> >
> > --
> > Fernando Nasser
> > Red Hat Canada Ltd.                     E-Mail:  fnasser@redhat.com
> > 2323 Yonge Street, Suite #300
> > Toronto, Ontario   M4P 2C9
> >
> >
> > Index: infrun.c
> > ===================================================================
> > RCS file: /cvs/cvsfiles/devo/gdb/infrun.c,v
> > retrieving revision 1.277
> > diff -c -p -r1.277 infrun.c
> > *** infrun.c    2000/02/29 07:17:52     1.277
> > --- infrun.c    2001/01/04 19:39:44
> > *************** handle_inferior_event (struct execution_
> > *** 2738,2748 ****
> >         {
> >         /* It's a subroutine call.  */
> >
> > !       if (step_over_calls == STEP_OVER_NONE)
> >           {
> >             /* I presume that step_over_calls is only 0 when we're
> >                supposed to be stepping at the assembly language level
> >                ("stepi").  Just stop.  */
> >             stop_step = 1;
> >             print_stop_reason (END_STEPPING_RANGE, 0);
> >             stop_stepping (ecs);
> > --- 2738,2753 ----
> >         {
> >         /* It's a subroutine call.  */
> >
> > !       if ((step_over_calls == 0)
> > !           || ((step_range_end == 1)
> > !               && in_prologue (prev_pc, ecs->stop_func_start)))
> >           {
> >             /* I presume that step_over_calls is only 0 when we're
> >                supposed to be stepping at the assembly language level
> >                ("stepi").  Just stop.  */
> > +           /* Also, maybe we just did a "nexti" inside a prolog,
> > +                so we thought it was a subroutine call but it was not.
> > +                Stop as well.  FENN */
> >             stop_step = 1;
> >             print_stop_reason (END_STEPPING_RANGE, 0);
> >             stop_stepping (ecs);
> 
> --
> Fernando Nasser
> Red Hat - Toronto                       E-Mail:  fnasser@redhat.com
> 2323 Yonge Street, Suite #300
> Toronto, Ontario   M4P 2C9

-- 
Fernando Nasser
Red Hat Canada Ltd.                     E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9

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