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: [rfc] Do not call read_pc in startup_inferior


Daniel Jacobowitz wrote:
> On Tue, Apr 28, 2009 at 06:37:12PM +0200, Ulrich Weigand wrote:
> > Hello,
> > 
> > a while ago, I committed a patch to avoid calling wait_for_inferior
> > in startup_inferior, so as to avoid accessing inferior register state
> > at a time where the target's actual register layout has not yet been
> > determined (via target_find_description).
> > 
> > However, startup_inferior still contains a read_pc call to retrieve
> > the initial value of stop_pc -- this of course runs into the same
> > problem.
> > 
> > The patch below removes the read_pc call from startup_inferior, and
> > instead determines the initial stop_pc value in post_create_inferior,
> > after the register layout has been finalized.
> 
> You're moving the call from a native "run" only routine, to an
> all-targets routine.  That made me curious so I went looking... what
> relies on this setting?  Anything?

It doesn't seem a lot relies on it; the solib_create_inferior_hook
might, but this is the case only for solib-sunos.c (which I guess
could be changed to use regcache_read_pc).

The only other potentially user-visible change seems to be that
"info program" will report "Program stopped at ..." giving the
proper entry point address.

In any case, most create_inferior implementations either call
startup_inferior, or otherwise set stop_pc e.g. by calling into
wait_for_inferior (in the latter case it shouldn't hurt to set
it again).

There are some targets that currently do not appear to set stop_pc:
the remote-extended mode, NTO, and some monitor targets.  These
would see a difference in "info program" output due to my patch
(but the new behaviour should be preferable, I guess) ...

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com


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