* 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.
Wed Nov 4 12:41:42 1998 Jim Ingham <jingham@cygnus.com>
* actiondlg.tcl: Get the stack collect string from an instance
variable. Need to implement some way to get this from the
target settings...
* global_pref.tcl (toggle_tracing_mode): Add & remove hooks
when you go in and out of tracing mode. Also reset the B1
behavior when you leave tracing mode
* interface.tcl (gdbtk_tcl_trace_find_hook): Added the trace
find hook, so you can switch the GUI state when the tfind
command is used to enter & leave browse mode.
* srcbar.tcl (constructor, destructor trace_find_hook): Added
the trace_find_hook to the source toolbar, and added the
necessary hooks to handle it.
* srctextwin.tcl (trace_find_hook): Added a trace find hook to
the sourcebar as well.
* stack.tcl (update): protect against errors in gdb_stack.
Just return "NO STACK" if we couldn't get it.
* src_pref.tcl (constructor, cancel): Put all the saved prefs
in an array, on cancel, see if any have changed and only
rebuild the window if there have been changes.
Mon Nov 2 13:24:10 1998 Jim Ingham <jingham@cygnus.com>
* bp.tcl (update): The hook function was passing more
arguments than this function expected.
Mon Nov 2 11:16:10 1998 Jim Ingham <jingham@cygnus.com>
* toolbar.tcl: Added Tdump image.
Fri Oct 30 17:36:05 1998 Jim Ingham <jingham@cygnus.com>
* src.tcl (set_execution_status): Changed status messages,
tracing is not the same as async debugging...
Fri Oct 30 17:06:31 1998 Jim Ingham <jingham@cygnus.com>
* bp.tcl (bp_all): Only remove tracepoints in the tracepoint
window, and breakpoints in the breakpoint window.
Fri Oct 30 11:22:23 1998 Jim Ingham <jingham@cygnus.com>
* actiondlg.tcl: Added special tag "Collect Stack". This
still needs to get hooked into the target database to deal
with targets that need to do something special to collect the
stack. Also moved some repeated code into loops.
* main.tcl (source_file): Source in a file of gdb commands.
* srcbar.tcl (constructor): Added source file menu entry, and
made stack buttons belong to both the Trace & Control classes.
* srctextwin.tcl (constructor): One too many separators in the
trace trace popup menu.
* tclIndex: regenerated.
* tfind_args.tcl: Added "tfind frame"
* toolbar.tcl (create_button): Allow a button to belong to
more than one class.
* toolbar.tcl (enable_ui): Eliminate redundant code, and allow
a button to belong to more than one class.
* toolbar.tcl (create_trace_menu): Added save tracepoints &
Tfind frame menu items.
* tracedlg.tcl: Added deletion of actions, and fixed a
the whiile-stepping combobox callback for the new combobox.
* util.tcl (save_trace_commands): new proc.
1998-10-29 Michael Snyder <msnyder@demo-laptop2.cygnus.com>
* target.tcl: add /dev/cua0 for Linux.
Tue Oct 27 13:46:03 1998 Jim Ingham <jingham@cygnus.com>
* Many little bug fixes all over in order to get tracing to work
along with normal program control.
* toolbar.tcl: Rewrote much of the code here to put commonly
used code into functions, and clean up adding menus and
buttons. Added the ability to disable particular menu items,
not just whole menus. Added the ability to delete and insert
buttons on the fly.
* srcbar.tcl: Pushed the changes to toolbar.tcl into this file.
* srctextwin.tcl: Changed the code dealing with breakpoints
and tracepoints to use the text tags more consistently. Use
only one set of menus for the whole widget, rather than having
a separate set for the SRC+ASM case. Rewrote a lot of the
code to separate out the tracing & program control functions.
* interface.tcl (gdbtk_tcl_breakpoint): pass more information
to the scrtextwin when a breakpoint changes state, so it can
do the right thing without having to guess...
* tracedlg.tcl (build_win): get the packing right so the
window expands correctly.
* main.tcl: do_tstop -> tstop, do_tstart -> tstart to avoid
confusion with the methods in ScrBar.tcl.
* prefs.tcl: Added two new preferences B1_Behavior to control
whether B1 sets breakpoints or tracepoints.
* src_prefs.tcl: Put in support for the B1_Behavior.
* global_prefs.tcl: Put back tracing checkbox.
* tdump.tcl: Fixed an incorrect (1 rather than 1.0) text
widget line specification.
* tfind_args.tcl (build_win): Bind return in the entry to the
OK button. Clear the entry field if the Type has changed.
* utils.tcl: Added comments for the debug commands.
* watch.tcl (build_win): Flash the OK button before invoking it.
Wed Nov 4 12:41:42 1998 Jim Ingham <jingham@cygnus.com>
* gdbtk-cmds.c (gdb_set_bp_addr): Pass the type, enable & thread
to gdbtk_tcl_breakpoint.
* gdbtk-hooks.c (gdbtk_trace_find): Added this function. It is
the hook function for tfind commands.
* tracepoint.c (trace_find_command): Added the trace_find_hook,
run when you do trace_find_command.
* tracepoint.h: Define the trace_find_hook.
Mon Nov 2 11:16:10 1998 Jim Ingham <jingham@cygnus.com>
* gdbtk-cmds (gdb_get_tracepoint_info): Demangle C++ function names.
Fri Oct 30 11:22:23 1998 Jim Ingham <jingham@cygnus.com>
* gdbtk-cmds (gdb_get_tracepoint_info): Fixed typo.
Wed Oct 28 10:14:33 1998 Jim Ingham <jingham@cygnus.com>
* gdbtk-cmds.c: Made the bdtypes & bpdisp arrays shared so they
could be used in gdbtk-hooks.c (breakpoint_notify).
Also fixed a few error messages to actually print the bp number
rather that #%d...
* gdbtk-hooks.c (breakpoint_notify): pass more of the information
about the breakpoint into the Tcl command, so it does not have to
try and guess about information we have on the C side.
* gdbtk.h: Export the bptypes & pbdisp arrays.
(ice_stepi): Use do_gdb to step properly.
(ice_nexti): Use do_gdb to step properly.
(view_source): Correct call to src window's location for new version.
* gdbtk-cmds.c (gdb_set_bp_addr): New command. Sets a
breakpoint at an address. Use this instead of gdb_cmd "break"
because the syntax of the break command is broken and doesn't
allow you to create a thread-specific BP at an address. Also
this is faster.
* gdbtk-cmds.c (gdb_set_bp): Add an optional thread number.
(gdb_find_bp_at_line): New function. Returns a list of bpnums
at the specified line number.
(gdb_find_bp_at_addr): New function. Returns a list of bpnums
at an address..
exec_file changes.
(gdbtk_add_hooks): Define exec_file_display_hook (to gdbtk_exec_file_changed)
* gdbtk-cmds.c (gdb_stop): target_stop is ALWAYS defined, so
compare against something a little more meaningful (target_ignore).
* v850ice.c (WM_ADDR_TO_SYM): New message.
(v850ice_wndproc): Add handler for WM_SOURCE.
(v850ice_wait): Call the ui_loop_hook occasionally.
(ice_cont): Acknowledge message before doing anything.
(ice_stepi): Ack message and let gdbtk do stepping.
(ice_nexti): Ack message and let gdbtk do stepping.
(view_source): New function ICE calls to display source code.
and "global constructors", do not append any elements to the result.
(gdb_get_vars_command): Install patch from Jun 9 1998 which appears
to have been lost.
Clean up some tabbing mess.
* gdbtk-cmds.c (gdb_loadfile): Open the file after doing
the symtab lookup and calling symtab_to_filename(). This
makes GDBtk work with the GDB "dir" command.
.
(gdbtk_selected_frame_changed): New function.
* gdbtk-cmds.c (Gdbtk_Init): Add command gdb_stack into interpreter.
Link gdb's global selected_frame_level with interpreter global
gdb_selected_frame_level.
(gdb_stack): New function to faciltate speedier backtraces from
gdbtk.
(get_frame_name): New helper function for gdb_stack.
* gdbtk.c (gdbtk_call_command): Removed because it is now
in gdbtk-hooks.c
(null_routine): Removed.
* gdbtk-hooks.c (tracepoint_notify): Fix sprintf to
match number of arguments.
* gdbtk-cmds.c (gdb_loc): When calling gdb_loc with an
argument, call find_pc_line() to get a complete
symtab_and_line struct.
Add missing flags to result_ptr.
Pass along any errors caused by getting the list of files from
tcl.
Allocate correct amount of memory for the file list.
Don't do any unecessary cleanups.
* symtab.c (decode_line_2): Instead of printing a prompt
and calling command_line_input() without a prompt, just
call it with the proper args. This makes the GUI work too.
Sat Jul 18 12:28:39 1998 Martin M. Hunt <hunt@cygnus.com>
* gdbtk.c (gdbtk_cleanup): Add call to tcl function
gdbtk_cleanup. We need this so the GUI gets to clean
up no matter how GDB exits.
* Moved gdbtk_hooks.c & gdbtk_cmds.c to gdbtk-hooks.c &
gdbtk-cmds.c to comply with the gdb conventions. Changed the
configure & makefile to reflect the change...
* main.tcl (gdbtk_preloop): Call gdbtk_idle on spec. If there was an
error in loading an executible specified on the command line,
then the pre_add_symbol hook would have called gdbtk_busy but
the corresponding call to gdbtk_idle would not have occured.
Also changed some catch calls so they didn't use
"catch {set foo [real_command]}"
but rather the more efficient:
"catch {real_command} foo"
* register.tcl: more catch cleanups
* src.tcl: more catch cleanups
* stack.tcl: more catch cleanups
* target.tcl: more catch cleanups
* tdump.tcl: more catch cleanups
* variables.tcl: more catch cleanups
* watch.tcl: more catch cleanups
* gdbtk.c (gdbtk_init): Fixed a bug in the startup code on Windows
that caused gdbtk not to find the share directory unless
GDBTK_LIBRARY was set.
* gdbtk.c: removed all the commands and hooks from this file so
now it contains only the startup code.
* gdbtk_cmds.c: New file - this contains all the Tcl commands that
gdb defines. All the old commands were moved here, the
string-based commands were converted to object commands, and the
object-based commands were all converted to uniformly use the
call_wrapper. A new function, Gdbtk_Init was added to centralize
initializing the gdb package. Also added gdbtk as a package
into gdbtk_interp.
* gdbtk_hooks.c: New file - All the hooks were moved here, and a new
function, gdbtk_add_hooks was added to centralize adding all these
hook functions. gdbtk_fputs was also modified to handle the new
result_ptr structure. See the comments in gdbtk.h for more
details.
* gdbtk.h: New file - this contains all the defines and globals
shared by gdbtk.c, gdbtk_cmds.c & gdbtk_hooks.c
* Makefile.in, configure.in & configure: mutatis mutandi for the
new files.
TYPES_NAMESPACE, METHODS_NAMESPACE, and VARIABLES_NAMESPACE used by
new search_symbols.
Add prototype for search_symbols and free_search_symbols.
* symtab.c (list_symbols): Rewrite to use new search_symbols.
(file_matches): New helper function for search_symbols.
(free_search_symbols): New function which frees data returned from
search_symbols.
(print_symbol_info): New helper function which prints info about a
matched symbol to stdout. Extracted from old list_symbols.
(print_msymbol_info): New helper function which prints info about
a matched msymbol to stdout. Extracted from old list_symbols.
(symtab_symbol_info): Extracted from old list_symbols.
(variables_info): Use symtab_symbol_info.
(functions_info): Use symtab_symbol_info.
(types_info): Use symtab_symbol_info.
(rbreak_command): Rewrite to use new search_symbols.
* gdbtk.c: Change all references to static global "interp" to
"gdbtk_interp" and export this global.
(gdbtk_init): If gdbtk_source_filename is not NULL, source this file
into the interpreter when it goes idle.
Add new command "gdb_search".
(gdb_search): New function which searches the symbol table.
(gdbtk_test): New function called by main when the --tclcommand
option is used.
* main.c (main): Add a new option "--tclcommand" which is used
by the testsuite to source a file into the interpreter when it
goes idle.
* gdbtk.c (gdbtk_init): Add elements to the auto_path AS LIST
ELEMENTS. This allows gdbtk to work when installed in a directory
which has a space in the path. D. Moseley pointed out the bug.
* gdbtk.c: merged:
- Elena Zannoni <ezannoni@kwikemart.cygnus.com>
(call_obj_wrapper): in case of error, copy the
error message from the result to the error_string.
(gdbtk_fputs): add comments.
(gdb_actions_command): call validate_actionline when installing the
tracepoint, to do the syntax checking of the actions for us.
- Elena Zannoni <ezannoni@kwikemart.cygnus.com>
(gdb_get_trace_frame_num): new function to get the
trace frame number from gdb.
(gdbtk_init): added new command gdb_get_trace_frame_num.
- Jim Blandy <jimb@zwingli.cygnus.com>
(struct wrapped_call_objs): Change the `func' member to
be a Tcl_ObjCmdProc, not an Tcl_CmdProc, since it accepts a vector
of objects as arguments. Change the object vector to be const,
since that's what all the users of this structure seem to expect.
(call_obj_wrapper): Cast clientData properly before storing it in
the wrapped_args structure.
* gdbtk.c (_initialize_gdbtk): Get rid of the console. Patch from
Chris Faylor (cgf@cygnus.com).
* configure.in: Link cygwin32 with subsystem console.
* configure: Regenerated
that
we can use this member to track real timeouts.
(hardwire_readchar): Modify for cygwin32 so that we only ever use a real
system timeout of one second. Track the "real" timeout as a series of th
ese
one second timeouts.
Call ui_loop_hook to keep the gui alive.
* top.c: Define new hook for cygwin32, "ui_loop_hook".
* gdbtk.c (gdbtk_init): Add ui_loop_hook for CygWin32 to work around
update problems.
* gdbtk.c: reinserted the changes that were accidentally deleted:
(_initialize_gdbtk): Use correct device names in
cygwin-specific call (cosmetic change).
(gdbtk_ignorable_warning): removed va_list parameter,
which was unused.
(_initialize_gdbtk): add cygwin32 specific code to
allow `gdb -nw' to work when specified specified from a windows
console-mode command line.
* ChangeLog: moved Chris Faylor's comment to ChangeLog-gdbtk
* gdbtk.c: Fixed a goof in the definition of the gdb_get_args &
gdb_get_locals Tcl commands. Moved the previous ChangeLog entry
from ChangeLog to ChangeLog-gdbtk...
* utils.c: (warning) added call to warning_hook
* source.c: (find_source_lines) modified to call warning in case
of source vs. executable time stamp mismatch. Simplified object
file check. Initialized mtime to 0.
* defs.h: added warning_hook prototype
* top.c: added warning_hook prototype.
* gdbtk.c: (perror_with_name_wrapper) new function to call
perror_with_name safely.
(gdb_loadfile) added source vs. executable time stamp check.
(gdbtk_warning) new function to pass a warning message to the gui.
(gdbtk_ignorable_warning) new function to pass a warning
to the gui. Used only for the src. vs. exec check.
(gdbtk_init) added warning_hook
added include <sys/stat.h>
timer interval a little.
(gdbtk_stop_timer): Include on all platforms.
(gdbtk_wait): No more signals! Use a timer on all platforms to keep the
GUI alive.
(gdbtk_init): Remove FIOASYNC and all x_fd references. Now using timers
on all platforms.