* symfile.c (reread_symbols): Don't pass argument to observer.
	* exec.c (exec_file_attach): Don't pass argument to observer.
	* ada-lang.c (ada_executable_changed_observer): Remove argument.
	* symtab.c (symtab_observer_executable_changed): Remove argument.
	* observer.sh: Handle functions with no arguments.
gdb/doc
	* observer.texi (GDB Observers): Remove obsolete comment.
	<executable_changed>: Remove argument.
This commit is contained in:
Tom Tromey 2008-07-21 16:47:11 +00:00
parent 88ba32a0f9
commit 781b42b0ba
8 changed files with 33 additions and 8 deletions

View File

@ -1,3 +1,11 @@
2008-07-21 Tom Tromey <tromey@redhat.com>
* symfile.c (reread_symbols): Don't pass argument to observer.
* exec.c (exec_file_attach): Don't pass argument to observer.
* ada-lang.c (ada_executable_changed_observer): Remove argument.
* symtab.c (symtab_observer_executable_changed): Remove argument.
* observer.sh: Handle functions with no arguments.
2008-07-20 Sergei Poselenov <sposelenov@emcraft.com>
Chris Demetriou <cgd@google.com>

View File

@ -9769,7 +9769,7 @@ ada_exception_support_info_sniffer (void)
each time a new executable is loaded by GDB. */
static void
ada_executable_changed_observer (void *unused)
ada_executable_changed_observer (void)
{
/* If the executable changed, then it is possible that the Ada runtime
is different. So we need to invalidate the exception support info

View File

@ -1,3 +1,8 @@
2008-07-21 Tom Tromey <tromey@redhat.com>
* observer.texi (GDB Observers): Remove obsolete comment.
<executable_changed>: Remove argument.
2008-07-18 Tom Tromey <tromey@redhat.com>
* gdb.texinfo (Macros): Update. Use @code rather than @command.

View File

@ -88,8 +88,6 @@ Send a notification to all @var{event} observers.
The following observable events are defined:
@c note: all events must take at least one parameter.
@deftypefun void normal_stop (struct bpstats *@var{bs})
The inferior has stopped for real.
@end deftypefun
@ -98,7 +96,7 @@ The inferior has stopped for real.
The target's register contents have changed.
@end deftypefun
@deftypefun void executable_changed (void *@var{unused_args})
@deftypefun void executable_changed (void)
The executable being debugged by GDB has changed: The user decided
to debug a different program, or the program he was debugging has
been modified since being loaded by the debugger (by being recompiled,
@ -141,4 +139,3 @@ The thread specified by @var{t} has exited.
The target was resumed. The @var{ptid} parameter specifies which
thread was resume, and may be RESUME_ALL if all threads are resumed.
@end deftypefun

View File

@ -275,7 +275,7 @@ exec_file_attach (char *filename, int from_tty)
(*deprecated_exec_file_display_hook) (filename);
}
bfd_cache_close_all ();
observer_notify_executable_changed (NULL);
observer_notify_executable_changed ();
}
/* Process the first arg in ARGS as the new exec file.

View File

@ -123,8 +123,14 @@ EOF
static struct observer_list *${event}_subject = NULL;
EOF
if test "$formal" != "void"; then
cat<<EOF >>${otmp}
struct ${event}_args { `echo "${formal}" | sed -e 's/,/;/g'`; };
EOF
fi
cat <<EOF >>${otmp}
static void
observer_${event}_notification_stub (const void *data, const void *args_data)
{
@ -150,8 +156,17 @@ observer_detach_${event} (struct observer *observer)
void
observer_notify_${event} (${formal})
{
EOF
if test "$formal" != "void"; then
cat<<EOF >>${otmp}
struct ${event}_args args;
`echo ${actual} | sed -e 's/\([a-z0-9_][a-z0-9_]*\)/args.\1 = \1/g'`;
EOF
else
echo "char *args = NULL;" >> ${otmp}
fi
cat<<EOF >>${otmp}
if (observer_debug)
fprintf_unfiltered (gdb_stdlog, "observer_notify_${event}() called\n");
generic_observer_notify (${event}_subject, &args);

View File

@ -2495,7 +2495,7 @@ reread_symbols (void)
clear_symtab_users ();
/* At least one objfile has changed, so we can consider that
the executable we're debugging has changed too. */
observer_notify_executable_changed (NULL);
observer_notify_executable_changed ();
}
}

View File

@ -4325,7 +4325,7 @@ main_name (void)
/* Handle ``executable_changed'' events for the symtab module. */
static void
symtab_observer_executable_changed (void *unused)
symtab_observer_executable_changed (void)
{
/* NAME_OF_MAIN may no longer be the same, so reset it for now. */
set_main_name (NULL);