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.
* gdbtk.c: (gdb_trace_status) new function.
(gdbtk_init) added command "gdb_is_tracing".
(tracepoint_notify) added passcount information.
* tracepoint.c (trace_status_command): Recognize a boolean return
value from the stub to indicate whether trace experiment is
running. Export this value as a global state variable
(trace_running_p) for use by the GUI. (from Michael Snyder)
(trace_pass_command) added call to modify_tracepoint_hook.
* tracepoint.h export trace_running_p
* gdbtk.c (gdbtk_fputs): Insert fencepost.
(gdb_loc): Correct pc calculation.
(gdb_immediate_command): Return if a load is in progress.
(gdb_cmd): Return if a load is in progress.
(target_stop_wrapper): New function.
(gdb_stop): Call target_stop_wrapper.
(x_event): Add fencepost and optimize load cancel check.
(gdbtk_start_timer): Set up structs only once.
(gdbtk_stop_timer): Just use preset structs to set timer parameters.
(gdb_loadfile): If file cannot be loaded, return error message.
(gdb_loadfile): Add space before tab so that lines without
a '-' can later be changed to have one.