This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: PATH: reset innermost_block on 'run'
- From: Michael Snyder <msnyder at redhat dot com>
- To: Per Bothner <per at bothner dot com>, gdb-patches at sources dot redhat dot com
- Date: Thu, 11 Apr 2002 17:42:27 -0700
- Subject: Re: PATH: reset innermost_block on 'run'
- Organization: Red Hat, Inc.
- References: <3CB62486.1030104@bothner.com> <3CB62C4C.A58FDBE2@redhat.com>
Michael Snyder wrote:
>
> Per Bothner wrote:
> >
> > It's been a while since I made this change, but as I recall
> > without it gdb will tend to crash when you re-start the
> > inferior using a 'run' command.
> >
> > Now I don't know exactly the best place to reset the
> > innermost_block variable, but it *is* a cache variable
> > that must be reset whenever execution continues, including
> > on each 'run'.
>
> Eeeewww! I believe you're right! ;-(
> Thanks for the catch, but I don't believe run_command is the right spot.
> If we want to do it whenever execution resumes, then how about putting
> it in resume()?
Moreover, there are two global extern declarations for this variable:
one in parser-defs.h, and one in expression.h. Which one should we
eliminate? I think that everything that includes parser-defs.h
also includes expression.h (or should), but not vice versa, so
maybe keep it in expression.h?
>
> >
> > * infcmd.c (run_command): Reset innermost_block.
> > --
> > --Per Bothner
> > per@bothner.com http://www.bothner.com/per/
> >
> > ------------------------------------------------------------------------
> > Index: infcmd.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/infcmd.c,v
> > retrieving revision 1.43
> > diff -u -p -r1.43 infcmd.c
> > --- infcmd.c 28 Mar 2002 01:35:55 -0000 1.43
> > +++ infcmd.c 11 Apr 2002 23:57:47 -0000
> > @@ -387,6 +387,8 @@ Start it from the beginning? "))
> > init_wait_for_inferior ();
> > }
> >
> > + innermost_block = NULL;
> > +
> > clear_breakpoint_hit_counts ();
> >
> > /* Purge old solib objfiles. */