2004-05-07 Andrew Cagney <cagney@redhat.com>

* observer.c: Include "commands.h" and "gdbcmd.h".
	(observer_debug, _initialize_observer): Add the
	command "set/show debug observer".
	* observer.sh: When observer debugging, log notify calls.
	* Makefile.in (observer.o): Update dependencies.

Index: doc/ChangeLog
2004-05-07  Andrew Cagney  <cagney@redhat.com>

	* observer.texi (GDB Observers): Add "Debugging" section.  Include
	cross reference to "set/show debug observer".
	* gdb.texinfo (Debugging Output): Document "set/show debug
	observer".
This commit is contained in:
Andrew Cagney 2004-05-07 22:51:55 +00:00
parent ba3e8e4643
commit 2b4855ab6b
7 changed files with 49 additions and 1 deletions

View file

@ -1,3 +1,11 @@
2004-05-07 Andrew Cagney <cagney@redhat.com>
* observer.c: Include "commands.h" and "gdbcmd.h".
(observer_debug, _initialize_observer): Add the
command "set/show debug observer".
* observer.sh: When observer debugging, log notify calls.
* Makefile.in (observer.o): Update dependencies.
2004-05-07 Jason Molenda (jmolenda@apple.com) 2004-05-07 Jason Molenda (jmolenda@apple.com)
* cli/cli-decode.c: Fix "SHOW_DOR" comment typeos. * cli/cli-decode.c: Fix "SHOW_DOR" comment typeos.

View file

@ -2118,7 +2118,8 @@ objfiles.o: objfiles.c $(defs_h) $(bfd_h) $(symtab_h) $(symfile_h) \
$(objfiles_h) $(gdb_stabs_h) $(target_h) $(bcache_h) $(gdb_assert_h) \ $(objfiles_h) $(gdb_stabs_h) $(target_h) $(bcache_h) $(gdb_assert_h) \
$(gdb_stat_h) $(gdb_obstack_h) $(gdb_string_h) $(hashtab_h) \ $(gdb_stat_h) $(gdb_obstack_h) $(gdb_string_h) $(hashtab_h) \
$(breakpoint_h) $(block_h) $(dictionary_h) $(breakpoint_h) $(block_h) $(dictionary_h)
observer.o: observer.c $(defs_h) $(observer_h) $(observer_inc) observer.o: observer.c $(defs_h) $(observer_h) $(observer_inc) \
$(command_h) $(gdbcmd_h)
ocd.o: ocd.c $(defs_h) $(gdbcore_h) $(gdb_string_h) $(frame_h) $(inferior_h) \ ocd.o: ocd.c $(defs_h) $(gdbcore_h) $(gdb_string_h) $(frame_h) $(inferior_h) \
$(bfd_h) $(symfile_h) $(target_h) $(gdbcmd_h) $(objfiles_h) \ $(bfd_h) $(symfile_h) $(target_h) $(gdbcmd_h) $(objfiles_h) \
$(gdb_stabs_h) $(serial_h) $(ocd_h) $(regcache_h) $(gdb_stabs_h) $(serial_h) $(ocd_h) $(regcache_h)

View file

@ -1,3 +1,10 @@
2004-05-07 Andrew Cagney <cagney@redhat.com>
* observer.texi (GDB Observers): Add "Debugging" section. Include
cross reference to "set/show debug observer".
* gdb.texinfo (Debugging Output): Document "set/show debug
observer".
2004-05-01 Andrew Cagney <cagney@redhat.com> 2004-05-01 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Target Architecture Definition): Delete * gdbint.texinfo (Target Architecture Definition): Delete

View file

@ -13404,6 +13404,13 @@ default is off.
@item show debug frame @item show debug frame
Displays the current state of displaying @value{GDBN} frame debugging Displays the current state of displaying @value{GDBN} frame debugging
info. info.
@kindex set debug observer
@item set debug observer
Turns on or off display of @value{GDBN} observer debugging. This
includes info such as the notification of observable events.
@kindex show debug observer
@item show debug observer
Displays the current state of observer debugging.
@kindex set debug overload @kindex set debug overload
@item set debug overload @item set debug overload
Turns on or off display of @value{GDBN} C@t{++} overload debugging Turns on or off display of @value{GDBN} C@t{++} overload debugging

View file

@ -35,6 +35,11 @@ The observer implementation is also currently not reentrant.
In particular, it is therefore not possible to call the attach In particular, it is therefore not possible to call the attach
or detach routines during a notification. or detach routines during a notification.
@section Debugging
Observer notifications can be traced using the command @samp{set debug
observer 1} (@pxref{Debugging Output, , Optional messages about
internal happenings, gdb, Debugging with @var{GDBN}}).
@section @code{normal_stop} Notifications @section @code{normal_stop} Notifications
@cindex @code{normal_stop} observer @cindex @code{normal_stop} observer
@cindex notification about inferior execution stop @cindex notification about inferior execution stop

View file

@ -52,6 +52,10 @@
#include "defs.h" #include "defs.h"
#include "observer.h" #include "observer.h"
#include "command.h"
#include "gdbcmd.h"
static int observer_debug;
/* The internal generic observer. */ /* The internal generic observer. */
@ -189,4 +193,18 @@ observer_test_third_notification_function (struct bpstats *bs)
observer_test_third_observer++; observer_test_third_observer++;
} }
extern initialize_file_ftype _initialize_observer; /* -Wmissing-prototypes */
void
_initialize_observer (void)
{
add_setshow_zinteger_cmd ("observer", class_maintenance, &observer_debug, "\
Set observer debugging.\n\
When non-zero, observer debugging is enabled.", "\
Show observer debugging.\n\
When non-zero, observer debugging is enabled.",
NULL, NULL,
&setdebuglist, &showdebuglist);
}
#include "observer.inc" #include "observer.inc"

View file

@ -134,6 +134,8 @@ observer_notify_${event} (${formal})
{ {
struct ${event}_args args; struct ${event}_args args;
`echo ${actual} | sed -e 's/\([a-z0-9_][a-z0-9_]*\)/args.\1 = \1/g'`; `echo ${actual} | sed -e 's/\([a-z0-9_][a-z0-9_]*\)/args.\1 = \1/g'`;
if (observer_debug)
fprintf_unfiltered (gdb_stdlog, "observer_notify_${event}() called\n");
generic_observer_notify (${event}_subject, &args); generic_observer_notify (${event}_subject, &args);
} }
EOF EOF