summaryrefslogtreecommitdiff
path: root/gdb/observer.sh
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2008-07-21 16:47:11 +0000
committerTom Tromey <tromey@redhat.com>2008-07-21 16:47:11 +0000
commit1698a906a2c14590f966fc5472ab18e47fb5eaee (patch)
tree4b315d23cc421077369d54f2c9faeaee2e516491 /gdb/observer.sh
parent6d3564d709d68aeaf68ccc711e45c970e5a0cce8 (diff)
downloadgdb-1698a906a2c14590f966fc5472ab18e47fb5eaee.tar.gz
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. <executable_changed>: Remove argument.
Diffstat (limited to 'gdb/observer.sh')
-rwxr-xr-xgdb/observer.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/observer.sh b/gdb/observer.sh
index 2b2eb159cca..af32b98b313 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<<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);