Re: [rfa/remote] Reread symbols on 'target remote'

Daniel Jacobowitz
2004-03-23T15:50:53Z

On Mon, Mar 22, 2004 at 05:28:48PM -0500, Andrew Cagney wrote:
>
> >>>While "run" and "load" are fairly obvious sync points for GDB and its
> >>>executable I'm not sure that "target remote" is - it's behavior is kind
> >>>of sort of a screwed up version of attach.
> >>>
> >>>What does that do (as far as I can tell it doesn't re-read symbols)?
> >
> >
> >I think you're right - attach won't reread symbols either. I believe
> >run is the only current sync point. My instinct is that target remote
> >and attach both ought to be - I know that if I'm debugging something
> >that needs to be started in a separate environment and attached to, and
> >I detach, rebuilt, re-attach, I'd be confused if GDB didn't
> >auto-reload. I know I've tried to do the same thing for target remote,
> >and expected GDB to reload - it didn't, and it took me a while to work
> >out what the problem was.
> >
> >We should probably be consistent. Want me to get attach too?
>
> Well attach is more messed up than that. It might load the symbol table
> (if it isn't already loaded and can be determined from /proc). Should
> attach instead always load the symbol table, prefering what is provided
> by the executable?

If I'm reading you right - then I think the answer is yes. What's your
opinion on the patch below? If there is no exec file, then attempt to
determine one from target_pid_to_exec_file. Otherwise, attempt to
reread the exec file.

> (meanwhile the remote change might as well go in to mainline)

OK, checked in.

--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer

2004-03-23 Daniel Jacobowitz <drow@mvista.com>

* infcmd.c (attach_command): Reread symbols if we already have
an exec file.

Index: infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.105
diff -u -p -r1.105 infcmd.c
--- infcmd.c 14 Feb 2004 17:26:35 -0000 1.105
+++ infcmd.c 23 Mar 2004 15:47:33 -0000
@@ -1843,6 +1843,11 @@ attach_command (char *args, int from_tty
symbol_file_add_main (full_exec_path, from_tty);
}
}
+ else
+ {
+ reopen_exec_file ();
+ reread_symbols ();
+ }

#ifdef SOLIB_ADD
/* Add shared library symbols from the newly attached process, if any. */