diff options
author | Jim Ingham <jingham@apple.com> | 1998-11-13 00:31:39 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 1998-11-13 00:31:39 +0000 |
commit | 2aae63977c4c7e40e634cea18c83157a2a0aae7d (patch) | |
tree | df2024ae51cd07b9cd9251b77d1ad139404b99b3 /gdb/gdbtk-hooks.c | |
parent | e9928289d385ad46df6f97d5a997489041493e42 (diff) | |
download | gdb-2aae63977c4c7e40e634cea18c83157a2a0aae7d.zip gdb-2aae63977c4c7e40e634cea18c83157a2a0aae7d.tar.gz gdb-2aae63977c4c7e40e634cea18c83157a2a0aae7d.tar.bz2 |
Thu Nov 12 15:20:15 1998 Jim Ingham <jingham@cygnus.com>
* console.tcl (complete): I added the ability to pass from_tty
from gdb_cmd to the underlying commands. Pass 1 when the
command is invoked from the console.
* interface.tcl (gdbtk_tcl_tstart, gdbtk_tcl_tstop): Run the
src window's do_tstop method rather than manipulating the
widgets by hand.
* src.tcl (build_win): Redo the packing so that the function
combobox doesn't push all the other combo-boxes off the screen
if it has a very long function name in it.
* srcbar.tcl (do_tstop): Added a mode that just changes the
GUI, which can be called from console hooks.
* srctextwin.tcl: Fixed some bugs I introduced in setting
breakpoints in the assembly & mixed mode windows. Dropped
the notion of joint breakpoint images for lines that have
breakpoints of two separate types. Too fragile.
Also added the "dont_change_appearance" flag, used in the
continue_to_here method to tell the GUI not to reflect the
temporary disabling of all the breakpoints.
* toolbar.tcl (insert_buttons): Added a little more error-checking.
Thu Nov 12 15:20:15 1998 Jim Ingham <jingham@cygnus.com>
* gdbtk-cmds.c (gdb_cmd): Added an optional second argument to the
gdb_cmd, which is from_tty. This is passed to the gdb command
parser. It is 0 by default, and the console window passes 1.
* gdbtk-cmds.c: moved disassemble_from_exec from gdbtk.c to gdbtk-cmds.c
with all the other link-var'ed variables
* gdbtk-hooks.c (gdbtk_trace_find): Only run the hook functions if
we are called from_tty.
* gdbtk-hooks.c (gdbtk_trace_start_stop): Set the trace buttons
from a trace_start_command callback rather than doing it as a
special case in gdb_cmd.
* tracepoint.c (tstart_command, tstop_command): Add call to
trace_start_stop_hook here.
Diffstat (limited to 'gdb/gdbtk-hooks.c')
-rw-r--r-- | gdb/gdbtk-hooks.c | 87 |
1 files changed, 51 insertions, 36 deletions
diff --git a/gdb/gdbtk-hooks.c b/gdb/gdbtk-hooks.c index 09f9ca0..833edef 100644 --- a/gdb/gdbtk-hooks.c +++ b/gdb/gdbtk-hooks.c @@ -85,6 +85,7 @@ static void gdbtk_create_tracepoint PARAMS ((struct tracepoint *)); static void gdbtk_delete_tracepoint PARAMS ((struct tracepoint *)); static void gdbtk_modify_tracepoint PARAMS ((struct tracepoint *)); static void gdbtk_trace_find PARAMS ((char *arg, int from_tty)); +static void gdbtk_trace_start_stop PARAMS ((int, int)); static void gdbtk_create_breakpoint PARAMS ((struct breakpoint *)); static void gdbtk_delete_breakpoint PARAMS ((struct breakpoint *)); static void gdbtk_modify_breakpoint PARAMS ((struct breakpoint *)); @@ -162,7 +163,7 @@ gdbtk_add_hooks(void) delete_tracepoint_hook = gdbtk_delete_tracepoint; modify_tracepoint_hook = gdbtk_modify_tracepoint; trace_find_hook = gdbtk_trace_find; - + trace_start_stop_hook = gdbtk_trace_start_stop; pc_changed_hook = pc_changed; selected_frame_level_changed_hook = gdbtk_selected_frame_changed; context_hook = gdbtk_context_change; @@ -464,34 +465,13 @@ gdbtk_call_command (cmdblk, arg, from_tty) if (cmdblk->class == class_run || cmdblk->class == class_trace) { - /* HACK! HACK! This is to get the gui to update the tstart/tstop - button only incase of tstart/tstop commands issued from the console - We don't want to update the src window, so we need to have specific - procedures to do tstart and tstop - Unfortunately this will not display errors from tstart or tstop in the - console window itself, but as dialogs.*/ - - if (!strcmp(cmdblk->name, "tstart") && !No_Update) - { - Tcl_Eval (gdbtk_interp, "gdbtk_tcl_tstart"); - (*cmdblk->function.cfunc)(arg, from_tty); - } - else if (!strcmp(cmdblk->name, "tstop") && !No_Update) - { - Tcl_Eval (gdbtk_interp, "gdbtk_tcl_tstop"); - (*cmdblk->function.cfunc)(arg, from_tty); - } - /* end of hack */ - else - { - running_now = 1; - if (!No_Update) - Tcl_Eval (gdbtk_interp, "gdbtk_tcl_busy"); - (*cmdblk->function.cfunc)(arg, from_tty); - running_now = 0; - if (!No_Update) - Tcl_Eval (gdbtk_interp, "gdbtk_tcl_idle"); - } + running_now = 1; + if (!No_Update) + Tcl_Eval (gdbtk_interp, "gdbtk_tcl_busy"); + (*cmdblk->function.cfunc)(arg, from_tty); + running_now = 0; + if (!No_Update) + Tcl_Eval (gdbtk_interp, "gdbtk_tcl_idle"); } else (*cmdblk->function.cfunc)(arg, from_tty); @@ -712,14 +692,49 @@ gdbtk_trace_find (arg, from_tty) { Tcl_Obj *cmdObj; - Tcl_GlobalEval (gdbtk_interp, "debug {***In gdbtk_trace_find...}"); - cmdObj = Tcl_NewListObj (0, NULL); - Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, - Tcl_NewStringObj ("gdbtk_tcl_trace_find_hook", -1)); - Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, Tcl_NewStringObj (arg, -1)); - Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, Tcl_NewIntObj(from_tty)); - Tcl_GlobalEvalObj (gdbtk_interp, cmdObj); + if (from_tty) { + Tcl_GlobalEval (gdbtk_interp, "debug {*** In gdbtk_trace_find, from_tty is true}"); + cmdObj = Tcl_NewListObj (0, NULL); + Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, + Tcl_NewStringObj ("gdbtk_tcl_trace_find_hook", -1)); + Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, Tcl_NewStringObj (arg, -1)); + Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, Tcl_NewIntObj(from_tty)); + Tcl_GlobalEvalObj (gdbtk_interp, cmdObj); + } else { + Tcl_GlobalEval (gdbtk_interp, "debug {*** In gdbtk_trace_find, from_tty is false}"); + } +} + +/* + * gdbtk_trace_start_stop + * + * This is run by the trace_start_command and trace_stop_command. + * The START variable determines which, 1 meaning trace_start was run, + * 0 meaning trace_stop was run. + * + */ + +static void +gdbtk_trace_start_stop (start, from_tty) + int start; + int from_tty; +{ + Tcl_Obj *cmdObj; + if (from_tty) { + Tcl_GlobalEval (gdbtk_interp, "debug {*** In gdbtk_trace_start, from_tty is true}"); + cmdObj = Tcl_NewListObj (0, NULL); + if (start) + Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, + Tcl_NewStringObj ("gdbtk_tcl_tstart", -1)); + else + Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, + Tcl_NewStringObj ("gdbtk_tcl_tstop", -1)); + Tcl_GlobalEvalObj (gdbtk_interp, cmdObj); + } else { + Tcl_GlobalEval (gdbtk_interp, "debug {*** In gdbtk_trace_startd, from_tty is false}"); + } + } static void |