aboutsummaryrefslogtreecommitdiff
path: root/gdb/top.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1994-10-21 00:59:20 +0000
committerStu Grossman <grossman@cygnus>1994-10-21 00:59:20 +0000
commit479f0f18d4a77e04b32cc7062ee31310b876e16b (patch)
tree3d0b2d2df5646de9741407942764a2e4981beed6 /gdb/top.c
parent1b79c34daa80f7cbbc3c16d603d44f482f9296bf (diff)
downloadgdb-479f0f18d4a77e04b32cc7062ee31310b876e16b.zip
gdb-479f0f18d4a77e04b32cc7062ee31310b876e16b.tar.gz
gdb-479f0f18d4a77e04b32cc7062ee31310b876e16b.tar.bz2
* defs.h, infrun.c (wait_for_inferior), top.c: Call
target_wait_hook to allow GUI to handle blocking for inferior. Call call_command_hook in execute_command to provide means for wrapping commands with GUI state change updates. * gdbtk.c (gdb_cmd): Force GUI into idle mode when errors occur. * (gdb_stop): New tcl command to stop the target process. * (x_event, gdbtk_wait): Allow GUI to interrupt gdb out of target waits. * (gdbtk_call_command): Wrapper around command processing to alert GUI of target state changes. * (gdbtk_init): Get the fd of X server for doing async notification of X events (via x_event). Setup new hooks. * gdbtk.tcl: Add scrollbars to assembly and command windows. * Change window foreground & background colors. * Create margin tag for breakpoints in source and assembly windows. * Add new routines to be invoked when target state changes to/from idle. * Add start of expression window. * Change bindings of mouse button 1 in assembly and source window to just set or clear breakpoints when in the margin tag. * Change shape of register window to be more vertical to better reflect it's contents. * Add stop button. * Cleanup some code around command window bindings. * infrun.c (wait_for_inferior): Make sure through_sigtramp_breakpoint is non-null before deleting.
Diffstat (limited to 'gdb/top.c')
-rw-r--r--gdb/top.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/top.c b/gdb/top.c
index bf185b4..9679f58 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -379,6 +379,16 @@ void (*disable_breakpoint_hook) PARAMS ((struct breakpoint *bpt));
void (*interactive_hook) PARAMS ((void));
+/* Called when going to wait for the target. Usually allows the GUI to run
+ while waiting for target events. */
+
+int (*target_wait_hook) PARAMS ((int pid, struct target_waitstatus *status));
+
+/* Used by UI as a wrapper around command execution. May do various things
+ like enabling/disabling buttons, etc... */
+
+void (*call_command_hook) PARAMS ((struct cmd_list_element *c, char *cmd,
+ int from_tty));
/* Where to go for return_to_top_level (RETURN_ERROR). */
jmp_buf error_return;
@@ -858,6 +868,8 @@ execute_command (p, from_tty)
do_setshow_command (arg, from_tty & caution, c);
else if (c->function.cfunc == NO_FUNCTION)
error ("That is not a command, just a help topic.");
+ else if (call_command_hook)
+ call_command_hook (c, arg, from_tty & caution);
else
(*c->function.cfunc) (arg, from_tty & caution);
}