From: Tom Tromey Date: Mon, 21 Jul 2008 16:47:11 +0000 (+0000) Subject: gdb X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=781b42b0ba532fe1d16fddce1301180dfd184788;hp=88ba32a0f9fbca4cc01eceb41c671a76375f4595;p=deliverable%2Fbinutils-gdb.git gdb * 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. : Remove argument. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 73c032ceec..9bd9c8f127 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2008-07-21 Tom Tromey + + * 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 Chris Demetriou diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 0eecd90aad..f3f1f34962 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -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 diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 3c6b66d3e1..5378fdb467 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2008-07-21 Tom Tromey + + * observer.texi (GDB Observers): Remove obsolete comment. + : Remove argument. + 2008-07-18 Tom Tromey * gdb.texinfo (Macros): Update. Use @code rather than @command. diff --git a/gdb/doc/observer.texi b/gdb/doc/observer.texi index 7d4d808b25..572f237008 100644 --- a/gdb/doc/observer.texi +++ b/gdb/doc/observer.texi @@ -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 - diff --git a/gdb/exec.c b/gdb/exec.c index 0bfad94757..ff94481823 100644 --- a/gdb/exec.c +++ b/gdb/exec.c @@ -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. diff --git a/gdb/observer.sh b/gdb/observer.sh index 2b2eb159cc..af32b98b31 100755 --- a/gdb/observer.sh +++ b/gdb/observer.sh @@ -123,8 +123,14 @@ EOF static struct observer_list *${event}_subject = NULL; +EOF + if test "$formal" != "void"; then + cat<>${otmp} struct ${event}_args { `echo "${formal}" | sed -e 's/,/;/g'`; }; +EOF + fi + cat <>${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<>${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<>${otmp} if (observer_debug) fprintf_unfiltered (gdb_stdlog, "observer_notify_${event}() called\n"); generic_observer_notify (${event}_subject, &args); diff --git a/gdb/symfile.c b/gdb/symfile.c index 12f17ac5bc..1825641ccd 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -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 (); } } diff --git a/gdb/symtab.c b/gdb/symtab.c index f676a0cc11..2ab520d515 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -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);