* target.c (target_close): New function.
(debug_to_close): Use "target_close".
(push_target): Use "target_close".
(unpush_target): Use "target_close".
(pop_target): Use "target_close".
* target.h (struct target_ops): Add "to_xclose".
(target_open): Delete macro. Move comment to "to_open".
(target_close): Replace macro with function that takes a target.
* top.c (quit_target): Pass "current_target" to "target_close".
* completer.c: include language.h.
(gdb_completer_word_break_characters): Delete.
(get_gdb_completer_word_break_characters): Delete.
(location_completer): Use the word break characters of the current
language.
(complete_line): Likewise.
(line_completion_function): Likewise.
(skip_quoted_chars): Likewise.
* Makefile.in (completer.o): Add dependency on language.h.
* top.c (init_main): Set the readline word break characters
to GDB's default word break characters.
* top.c (quit_target): New static helper function.
(quit_force): Moved code to quit_target(). Call quit_target()
via catch_errors() to catch errors during quit.
* main.c (captured_main): Set it.
* top.c (lim_at_start): Define.
(command_loop): Use it instead of &environ.
* event-top.c (command_handler): Likewise.
* gdb.base/selftest.exp: Next over lim_at_start initialization.
More cleanup from import of readline 4.3.
* completer.h (complete_line, readline_line_completion_function):
Update prototypes.
(line_completion_function): Removed, not used outside of completer.c.
* completer.c (readline_line_completion_function,
complete_function, line_completion_function): Use const for first
parameter.
(line_completion_function): Make static.
(filename_completer): filename_completion_function is now called
rl_filename_completion_function
* corelow.c: Include <readline/readline.h>.
* exec.c: Ditto.
* solib.c: Ditto.
* source.c: Ditto.
* symfile.c: Ditto.
* symmisc.c: Ditto.
* top.c (init_main): No need to coerce
readline_line_completion_function anymore.
* cli/cli-dump.c: Include <readline/readline.h>.
* utils.c (prompt_for_continue): Use gdb_readline_wrapper.
* tracepoint.c (read_actions): Use gdb_readline_wrapper.
* top.c (gdb_readline_wrapper): New function.
(command_line_input): Use it.
* top.c (execute_command): Use cmd_func() and cmd_func_p().
* cli/cli-decode.c (cmd_func_p): New function.
(cmd_func): New function.
* command.h: Add cmd_func() and cmd_func_p().
(execute_cmd_pre_hook): Declare.
* cli/cli-script.c (clear_hook_in_cleanup): New function.
(execute_cmd_post_hook, execute_cmd_pre_hook): New
functions. Execute pre/post hook while ensuring that afterwords
hook_in is cleared.
* top.c (execute_command): Use execute_cmd_post_hook, and
execute_cmd_pre_hook to execute pre/post commands.
* infrun.c (normal_stop): Pass stop_command and not pre_hook to
hook_stop_stub.
(hook_stop_stub): Call execute_cmd_pre_hook.
negative.
(RETURN_MASK): Negate reason.
(catch_exception_ftype): Declare.
(catch_exceptions): Declare.
* top.c (catcher): New function, based on catch_errors. Add in
parameter func_uiout and out parameters func_val, func_caught and
func_cleanup. Change type of func to catch_exceptions_ftype.
Save/restore uiout.
(struct catch_errors_args): Define.
(do_catch_errors): New function.
(catch_errors): Rewrite, use do_catch_errors and catcher.
(catch_exceptions): New function, use catcher.
gratuitious whitespace changes.
[!HAVE_SIGPROCMASK]: Call sigsetmask if HAVE_SIGSETMASK is defined.
* top.c: Remove redundant logic to define HAVE_SIGSETMASK.
(sigsetmask) Don't define macro.
(stop_sig) [HAVE_SIGPROCMASK]: Add bit of code snatched from
async_stop_sig from event-top.c.
[!HAVE_SIGPROCMASK]: Call sigsetmask if HAVE_SIGSETMASK is
defined.
* configure.in (AC_CHECK_FUNCS): Put functions in alphabetical
order. Add sigsetmask.
(AC_FUNC_VFORK, AC_FUNC_ALLOCA): Reorder such that they're in
alphabetical order.
* config/xm-aix4.h, config/alpha/xm-alphalinux.h,
config/i386/xm-cygwin.h, config/rs6000/xm-rs6000.h
(HAVE_SIGSETMASK): Remove.
* aclocal.m4, config.in, configure
* top.c (quit_cover, float_handler): Move definition up before use.
(gdb_init): Move to end of file, to avoid calls to not yet defined
functions.
Delete prototypes.
* top.c (command_loop): Remove tui insert_mode hacks; don't call
tuiCleanUp because this must be made with atexit by tui.
* symfile.c (symbol_file_command): Remove call to TUIDO
* stack.c (show_and_print_stack_frame_stub): Remove tui check;
not necessary when using the selected frame hooks.
(print_stack_frame_stub): Likewise.
(print_frame_info_base): Likewise.
(print_frame_info): Likewise.
(up_silently_command): Likewise.
(down_silently_command): Likewise.
(show_stack_frame): Likewise for TUIDO.
(select_frame): Likewise.
(select_and_print_frame): Likewise.
(stack_publish_stopped_with_no_frame): Remove.
(select_and_maybe_print_frame): Remove.
* main.c (captured_main): Remove tui_fileopen and tuiInit; tui
must use the initialize ui hook.
* infrun.c (normal_stop): Remove call to TUIDO; tui must use the
selected frame hooks.
* event-top.c (command_handler): Remove tui insert_mode hack.
* defs.h: Remove TUIDO; Only include tui.h.
* breakpoint.c (mention): Remove calls to TUIDO.
(delete_breakpoint): Remove tui hacks; tui must install
the breakpoint hooks.
From Jimmy Guo <guo@cup.hp.com>
* top.c (init_main): set prompt if annotation_level>1,
this is necessary when annotation_level is set to 2 via
--annotate=2 command line option.
* Makefile.in (UIOUT_CFLAGS): New macro. CFLAGS needed for uiout code
to be compiled. Defines UI_OUT.
(SUBDIR_MI_CFLAGS): Defines MI_OUT, not UI_OUT.
(INTERNAL_WARN_CFLAGS): Also include UIOUT_CFLAGS.
* configure.in (UIOUT_CFLAGS): New configuration variable.
(--with-uiout): New configuration option. Causes uiout code to
be compiled, instead of the old *printf one.
* configure: Regenerate.
* top.c (print_gdb_version): Test for and print MI_OUT, not UI_OUT.
* testsuite/lib/mi-support.exp (mi_gdb_start): Test for MI_OUT,
not UI_OUT.
* cli/cli-decode.c: New file. Handle lists of commands, their decoding
and documentation.
(add_cmd, deprecate_cmd, add_abbrev_cmd, add_alias_cmd, add_prefix_cmd,
add_abbrev_prefix_cmd, not_just_help_class_command, empty_sfunc,
add_set_cmd, add_set_enum_cmd, add_set_auto_boolean_cmd,
add_show_from_set, delete_cmd, apropos_cmd, help_cmd, help_list,
help_all, print_doc_line, help_cmd_list, find_cmd, lookup_cmd_1,
undef_cmd_error, lookup_cmd, deprecated_cmd_warning,
lookup_cmd_composition, complete_on_cmdlist, complete_on_enum):
Moved here from command.c.
(add_info, add_info_alias, add_com, add_com_alias): Moved here from
top.c.
* cli/cli-decode.h: Definitions/declarations for the above.
* cli/cli-cmds.c: New file. GDB CLI commands.
(error_no_arg, info_command, show_command, help_command, show_version,
quit_command, pwd_command, cd_command, echo_command, shell_escape,
make_command, show_user, set_debug, show_debug, init_cmd_lists):
Moved here from top.c.
(apropos_command): Moved here from command.c.
(complete_command, source_command): Moved here (part) from top.c.
(is_complete_command): New function. Checks if a command is the
"complete" command.
(init_cli_cmds): New function. Add commands to the CLI (from code
previously in top.c.
* cli/cli-cmds.h: Definitions/declarations for the above.
* cli/cli-script.c: New file. GDB CLI command scripting.
(build_command_line, get_command_line, print_command_lines,
print_command_line, execute_user_command, execute_control_command,
while_command, if_command, arg_cleanup, setup_user_args, locate_arg,
insert_args, realloc_body_list, read_next_line,
recurse_read_control_structure, read_command_lines, free_command_lines,
do_free_command_lines_cleanup, make_cleanup_free_command_lines,
validate_comname, user_defined_command, define_command,
document_command, source_cleanup_lines, do_fclose_cleanup,
show_user_1): Moved here from top.c.
(script_from_file): New function. Implements execution of a script
contained in a file (part of code for the source_command() that used
to exist in top.c).
* cli/cli-script.h: Definitions/declarations for the above.
* cli/cli-setshow.c: New file. Handle set and show GDB CLI commands.
(parse_auto_binary_operation, parse_binary_operation,
do_setshow_command, cmd_show_list): Moved here from command.c.
* cli/cli-setshow.h: Definitions/declarations for the above.
* top.c: Remove all CLI code, except the command loop.
(gdb_init): Call init_cli_cmds().
* command.c: Remove obsolete file.
* command.h: Mark as DEPRECATED.
* gdbcmd.h: Ditto.
* call-cmds.h: Ditto.
* Makefile.in (SFILES): Remove command.c.
(COMMON_OBS): Remove command.o.
(command.o): Remove obsolete target.
(cli_decode_h, cli_cmds_h, cli_script_h, cli_setshow_h): New macros.
Refer to CLI header files.
(cli-decode.o, cli-cmds.o, cli-setshow.o, cli-script.o): New targets.
(SUBDIR_CLI_OBS, SUBDIR_CLI_SRCS, SUBDIR_CLI_DEPS, SUBDIR_CLI_INITS,
SUBDIR_CLI_LDFLAGS, SUBDIR_CLI_CFLAGS, SUBDIR_CLI_ALL, SUBDIR_CLI_CLEAN,
SUBDIR_CLI_INSTALL, SUBDIR_CLI_UNINSTALL): New macros for new cli
subdirectory.
* configure.in (enable_gdbcli): New option. Include the CLI in the
executable (cannot be disabled yet).
(CONFIG_OBS, CONFIG_DEPS, CONFIG_SRCS, CONFIG_INITS, ENABLE_CFLAGS,
CONFIG_ALL, CONFIG_CLEAN, CONFIG_INSTALL, CONFIG_UNINSTALL): Add
the corresponding SUBDIR_CLI_* macros if CLI requested.
* configure: Regenerate.
* linespec.h: New file. Declarations for linespec.c.
* linespec.c, alpha-tdep.c, breakpoint.c, parse.c, source.c,
symtab.c, tracepoint.c: Include the above.
* completer.c: New file. Line completion stuff for GDB.
(get_gdb_completer_word_break_characters,
get_gdb_completer_quote_characters): New functions. Accessors for
useful completer internal data.
(filename_completer, line_completion_function, skip_quoted): Moved
here from top.c.
* completer.h: New file. Declarations for the above.
* linespec.c (decode_line_1): Use
get_gdb_completer_word_break_characters and
get_gdb_completer_quote_characters.
* top.c: Include completer.h.
(filename_completer, line_completion_function, skip_quoted):
Moved to completer.c.
* corefile.c, exec.c, source.c, symfile.c, linespec.c: Include
completer.h.
* Makefile.in (SFILES): Add completer.c.
(COMMON_OBS): Add completer.o.
(completer.o): New target.
(linespec.o, alpha-tdep.o, breakpoint.o, parse.o, source.o,
symtab.o, tracepoint.o): Add linespec.h to dependencies list.
(corefile.o, exec.o, source.o, symfile.o, linespec.o): Add completer.h
to dependencies list.
From Steven Johnson <sbjohnson@ozemail.com.au>:
This set of changes add "hookpost-" as an expansion on the original
hooking of commands to GDB. A Hook may now be run "AFTER" execution of
a command as well as before.
* command.h (struct cmd_list_element): Changed elements hook and hookee
to hook_pre and hookee_pre respectively. Added hook_post and hookee_post
for the post hook command operation. Added hook_in so that an executing
hook can be flagged to prevent recursion.
* command.c (add_cmd): Changed initilization of cmd_list_element to
reflect above changes.
(delete_cmd): Remove both pre and post hooks.
(help_cmd): Notify that the command has pre and/or post hooks.
* infrun.c (normal_stop): Change references to hook_pre from hook.
* top.c (execute_command): Run both pre and post hooks.
(define_command): Allow definition of both pre and post hooks.
The definition of pre-hooks is done as before, with the "hook-"
prefix for backward compatibility.
function signatures so that they match catch_errors and
make_cleanup callbacks.
* tracepoint.c (encode_actions): Fix arguments passed to
stringify_collection_list.
(line_completion_function): When completing on file names, use
gdb_completer_file_name_break_characters as word break
characters for the readline library.
From David Whedon <dwhedon@gordian.com>
* top.c (execute_command): Checks all commands beore executing
to see if the user needs to be warned that the command is
deprecated, warns user if appropriate.
(add_info), (add_info_alias), (add_com) , (add_com_alias): Changed
return values from void to struct cmd_list_element *.
* command.c (lookup_cmd_1): Check aliases before following link
in case user needs to be warned about a deprecated alias.
(deprecate_cmd): new exported function for command deprecation,
sets flags and posibly a replacement string.
(deprecated_cmd_warning): New exported funciton to warn user about
a deprecated command.
(lookup_cmd_composition): New exported function that determines
alias, prefix_command, and cmd based on a string. This is useful
is we want to full name of a command.
* command.h : Added prototypes for deprecate_cmd,
deprecated_warn_user and lookup_cmd_composition, added flags to
the cmd_list_element structure, changed return values for
add_com_* and add_info_* from void to cmd_list_element.
* maint.c : (maintenance_deprecate): New function to deprecate a
command. This exists only so that the testsuite can deprecate
commands at runtime and check the warning behavior.
(maintenance_undeprecate) : New function, drops deprecated flags.
(maintenance_do_deprecate): Actually does the (un)deprecation.
(initialize_maint_cmds): Added the above new deprecate commands.
(error_return, quit_return): Merge into catch_return pointer.
(return_to_top_level): Update comment. Longjmp to *catch_errors,
and communicate reason to catch_errors via setjmp return value.
(catch_errors): Always catch both quit and error, and if a catch
wasn't requested by caller, throw it to the next catch_error.
Replace dual longjmp buffer memcpy with single pointer change.
Add FIXME for possibly adding new interface to tell caller what
event was caught. Add extensive comments.
* defs.h (enum return_reason): Reserve 0 for use as initial
setjmp() return value.
(RETURN_MASK): New public macro to generate RETURN_MASK_* from
enum return_reason.
(RETURN_MASK_QUIT, RETURN_MASK_ERROR): Define using RETURN_MASK.
Changes from Keith Seitz <keiths@cygnus.com>
* valops.c (value_assign): Add calls to register_changed_hook and
memory_changed_hook to inform UIs that the user has changed
the target's registers/memory.
* findvar.c (write_register_gen): Remove call to pc_changed_hook.
* defs.h: Remove declaration for pc_changed_hook and
add declarations for register_changed_hook and
memory_changed_hook.
* top.c: Ditto.
* top.c (init_main): Fix tipo in description of the remotetimeout
variable.
* breakpoint.c (bpstat_stop_status): Handle systems where
DECR_PC_AFTER_BREAK != DECR_PC_AFTER_HW_BREAK.
than $(READLINE_SRC) so #include <readline/readline.h> will work.
* top.c: #include <readline/history.h> instead of "history.h".
* tracepoint.c: Likewise.
* mac-xdep.c: Likewise.
Re-do TARGET_PRINT_INSN_INFO, TARGET_PRINT_INSN, TARGET_ARCHITECTURE,
TARGET_ARCHITECTURE_AUTO, TARGET_BYTE_ORDER_SELECTABLE_P,
TARGET_BYTE_ORDER so that they can all be overriden.
Document.
Convert mn10300 and PPC targets.
Changes to account for name change from cygwin32 to cygwin and
clean up Win32-related ifdefs.
* configure.tgt: check for cygwin* instead of cygwin32.
New cygwin gdb_target variable loses the "32".
* configure.host: check for cygwin* instead of cygwin32.
New cygwin gdb_host variable loses the "32".
* configure.in: test __CYGWIN__ instead of __CYGWIN32__,
rename gdb_cv_os_cygwin32 variable to drop the "32". Call
AM_EXEEXT instead of AC_EXEEXT since that isn't in a released
autoconf yet.
* configure: regenerate.
* main.c: drop "32" from cygwin_ funcs, include sys/cygwin.h
where
cygwin path conv protos live, instead of adding a proto here
for
them here.
* {main.c, ser-tcp.c, ser-unix.c, top.c}: check __CYGWIN__
instead of __CYGWIN32__.
* source.c: thoughout, check _WIN32 instead of WIN32.
* config/i386/cygwin32.mh: delete.
* config/i386/cygwin.mh: new file, was cygwin32.mh.
* config/i386/cygwin32.mt: delete.
* config/i386/cygwin.mt: new file, was cygwin32.mt.
* config/i386/tm-cygwin32.h: delete.
* config/i386/tm-cygwin.h: new file, was tm-cygwin32.h.
* config/i386/xm-cygwin32.h: delete.
* config/i386/xm-cygwin.h: new file, was xm-cygwin32.h.
* config/i386/xm-windows.h: #include xm-cygwin.h now.
* config/powerpc/cygwin32.mh: delete.
* config/powerpc/cygwin.mh: new file, was cygwin32.mh.
* config/powerpc/cygwin32.mt: delete.
* config/powerpc/cygwin.mt: new file, was cygwin32.mt.
* config/powerpc/tm-cygwin32.h: delete.
* config/powerpc/tm-cygwin.h: new file, was tm-cygwin32.h.
* config/powerpc/xm-cygwin32.h: delete.
* config/powerpc/xm-cygwin.h: new file, was xm-cygwin32.h.
* rdi-share/aclocal.m4: regenerate with aclocal.
* rdi-share/configure: regenerate with autoconf.
* rdi-share/{host.h, hostchan.c, hostchan.h, serdrv.c,
* serpardr.c,
unixcomm.c}: check __CYGWIN__ instead of __CYGWIN32__.
which define CRLF_SOURCE_FILES.
* win32-nat.c: 1) Add thread support, 2) fix ability to attach to
a running process, and 3) implement limited support for cygwin
signals.
(thread_rec): New function.
(child_add_thread): Ditto.
(child_init_thread_list): Ditto.
(child_delete_thread): Ditto.
(do_child_fetch_inferior_registers): Ditto.
(do_child_store_inferior_registers): Ditto.
(handle_output_debug_string): Ditto.
(child_fetch_inferior_registers): Use do_* function to perform
operation.
(child_store_inferior_registers): Ditto.
(child_continue): Ditto.
(child_thread_alive): Ditto.
(cygwin_pid_to_str): Ditto.
(handle_load_dll): Reorganize, add first attempt at reading
dll names from attached processes. Change info messages to provide
more information when dll is already loaded.
(handle_exception): Changes mandated by new thread-aware structures.
(child_wait): Track thread creation/destruction. Handle cygwin
signals.
(child_create_inferior): Ditto.
(child_resume): Ditto.
(child_kill_inferior): Ditto. Close child process handle to avoid a
handle leak.
(child_ops): Fill out child_ops fields that deal with threads.
* config/i386/tm-cygwin32.h: Declare function and macro needed
for converting a cygwin "pid" to a string.
* config/i386/xm-cygwin32.h: define HAVE_SIGSETMASK as 0 since
sigsetmask is not defined in cygwin.
* blockframe.c (find_pc_sect_partial_function): Add braces to avoid
possible nested-if confusion.
* breakpoint.c (breakpoint_here_p): Ditto.
(breakpoint_inserted_here_p): Ditto.
(breakpoint_thread_match): Ditto.
* gnu-regex.c: Define _REGEX_RE_COMP only if it isn't already defined.
* gnu-regex.h: Define _REGEX_RE_COMP to pick up old compatability
prototypes.
* symtab.h: Add prototype for _initialize_source.
* value.h: Add prototype for _initialize_value.
* defs.h: Include sys/types.h or stddef.h to get size_t.
(make_cleanup): Add make_cleanup_func typedef and switch to using
a prototype for this function.
(mfree): Add prototypes for mmalloc, mrealloc, mfree if we aren't
using mmalloc.
* ax-gdb.c breakpoint.c coffread.c corelow.c dbxread.c dwarf2read.c
dwarfread.c elfread.c eval.c exec.c gdbtk-cmds.c gdbtk.c infcmd.c
infrun.c mipsread.c nlmread.c os9kread.c parse.c printcmd.c symfile.c
symmisc.c symtab.c thread.c top.c tracepoint.c typeprint.c valops.c:
Cast parameters passed to make_cleanup to use the new
make_cleanup_func typedef.
More warning cleanups. There are still a bunch of places where the first
argument to make_cleanup is not cast to (make_cleanup_func); these are
either due to the function fitting the make_cleanup_func specification
already (e.g. free()) or they are in files that weren't compiled when
I did my make on a Linux native system. Bwahahaha. You can see them
like this:
grep make_cleanup\ * | grep -v make_cleanup_func
I'll surely go back and clean up the remaining suspicious calls in
GDB one of these days. :-)
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.
* 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>
merged changes from Foundry (list follows by file/author):
- Tom Tromey <tromey@cygnus.com>
* Makefile.in (gdbres.o): New target.
(WINDRES): New define.
* configure: Rebuilt.
* configure.in (WINDRES): Define.
(CONFIG_OBS): Include gdbres.o on Windows.
* gdbtool.ico: New file.
* gdb.rc: New file.
* ser-unix.c
- Keith Seitz <keiths@onions.cygnus.com>
(wait_for): Don't reset the timeout_remaining for CYGWIN32,
since we now effectively poll the serial port.
Don't reset the current_timeout, either, since this member is used
by hardwire_readchar to track the timeout and call the ui_loop_hook.
(hardwire_readchar): Poll the serial port for Cygwin32. We timeout every
second, update the UI, and loop around doing this until we have hit the real
timeout or we get data or an error. This will allow the UI to stay active
while gdb is "blocked" talking to the target.
- Martin M. Hunt <hunt@cygnus.com>
(wait_for): Do reset current_timeout
because it is only used to keep track of what the
current timeout for the scb is.
* top.c
- Martin M. Hunt <hunt@cygnus.com>
(quit_confirm): Change exit message again
for GUI.
(pc_changed_hook): Add prototype.
- Tom Tromey <tromey@cygnus.com>
(quit_confirm): Added missing `else'.
(quit_confirm): Special-case message if init_ui_hook is
set.
* symtab.c
- Martin M. Hunt <hunt@cygnus.com>
(find_pc_sect_line): If no symbol information
is found, return correct pc anyway.
(find_methods): Comment out an apparently
bogus error message because it messes up Foundry.
* serial.c
- Martin M. Hunt <hunt@cygnus.com>
(_initialize_serial): Add a description of
"set remotelogbase".
* findvar.c
- Martin M. Hunt <hunt@cygnus.com>
(write_register_gen): Add call to
pc_changed_hook if the PC is being changed.
* defs.h
- Martin M. Hunt <hunt@cygnus.com>
(pc_changed_hook): Define.
* command.c
- Martin M. Hunt <hunt@cygnus.com>
(do_setshow_command): If no arguments are supplied,
don't dump core, instead print out an error message.
* breakpoint.c
- Martin M. Hunt <hunt@cygnus.com>
Make set_raw_breakpoint, set_breakpoint_count,
and breakpoint_count non-static so they are accessible from
gdbtk.c.
(enable_breakpoint): Enable breakpoint
with same disposition instead of changing all breakpoints
to donttouch.
* annotate.h
- Keith Seitz <keiths@onions.cygnus.com>
Add declarations for annotation hooks.
* annotate.c
- Keith Seitz <keiths@onions.cygnus.com>
Add hooks: annotate_starting_hook, annotate_stopped_hook,
annotate_signalled_hook, annotate_exited_hook.
(annotate_starting): If hook exists, call it instead.
(annotate_stopped): If hook exists, call it instead.
(annotate_exited): If hook exists, call it instead.
(annotate_signalled): If hook exists, call it instead.
Sat Mar 21 19:34:49 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
Merged changes from Foundry: list follows by author:
- Tom Tromey <tromey@cygnus.com>
* Makefile.in (gdbres.o): New target.
(WINDRES): New define.
* configure: Rebuilt.
* configure.in (WINDRES): Define.
(CONFIG_OBS): Include gdbres.o on Windows.
* gdbtool.ico: New file.
* gdb.rc: New file.
* gdbtk.c (gdbtk_init): Call ide_create_messagebox_command.
(gdbtk_cleanup): Call ide_interface_deregister_all.
(gdbtk_init): Pass event handle to cleanup.
(TclDebug): Use Tcl_Merge to construct command.
(gdbtk_init): Call ide_create_cygwin_path_command.
- Martin M. Hunt <hunt@cygnus.com>
* gdbtk.c (gdb_set_bp): Set addr_string for bp.
(gdb_get_breakpoint_info): Demangle function
names in breakpoint info.
Include "demangle.h".
(gdb_loc, gdb_listfuncs): Demangle C++
function names.
(gdb_set_bp): Properly quote filename to fix
problems with spaces. Send pc back as a hex string.
(gdb_listfuncs): Remove debugging line.
Turn off some debugging lines.
(breakpoint_notify): Return correct line number.
(gdb_get_breakpoint_info): Return correct line number.
(gdb_set_bp): New function to provide a better way to
set breakpoints.
(gdbtk_readline, gdbtk_readline_begin): Memory
allocated by tcl needs to be freed by Tcl_Free().
(find_file_in_dir): Deleted.
(gdb_find_file_command): Call full_lookup_symtab().
(gdb_listfuncs): Call full_lookup_symtab().
(full_lookup_symtab): New function. Like lookup_symtab
except handles multiple files with the same basename,
full pathnames, and always sets symtab->fullname.
(gdb_loadfile): Call full_lookup_symtab(). Clear
realloc'd memory.
(gdb_loadfile): Don't tag lines without source.
Tag source lines with source_tag.
(gdb_find_file_command, find_file_in_dir):
Rewrite. Now searches symtabs and psymtabs for a match
on the partial or full filename. Returns the full pathname.
(gdb_loadfile): Realloc additional memory
if someone loads in a file with more than 160,000
lines. I don't know if this really works because
I don't have enough memory to test it.
(gdb_sourcelines): Deleted.
(gdb_loadfile): New function. Takes a text widget
and loads it with the contents of a file. Marks
and tags source lines.
(pc_changed): New function.
(get_pc_register): Returns the value of
the PC to GDB.
(gdb_loc): If looking on the stack, return
real pc along with calling source line.
(gdb_loc): Return "" instead of "N/A" if
filename is not found.
(gdb_get_breakpoint_info): Same.
(get_register): For Natural mode, set format to 0.
Minor bugfixes from keiths.
(TclDebug): New function for debugging use.
(gdb_loc): Return correct PC for frames
that are not the innermost frame.
(gdb_listfiles): Rewritten to use object
API. Now takes an optional dirname which will cause
only files in that directory or its subdirectories
to be returned. Now returns basenames instead of
full pathnames.
(gdb_cmd): Set/reset load_in_progress flag.
(call_wrapper): Don't pop up dialog for errors in
downloads; just abort download.
(gdbtk_load_hash): Set return value correctly.
- Keith Seitz <keiths@onions.cygnus.com>
* gdbtk.c (gdbtk_init): Define the ui_loop_hook so that it can be
called by routines which might block, allowing us to update the GUI.
(gdbtk_wait): Move timer calls to annotation hooks.
(gdbtk_init): Define the annotation hooks.
(gdbtk_annotate_starting): New function for cygwin32 hosts.
(gdbtk_annotate_stopped): New function for cygwin32 hosts.
(gdbtk_annotate_exited): New function for cygwin32 hosts.
(gdbtk_annotate_signalled): New function. for cygwin32 hosts.
(gdbtk_init): Use gdbtk_print_frame_info hook.
(gdbtk_print_frame_info): New function which sets current_source_symtab
based on the given symtab and line info.
(gdb_immediate_command): New function which does
not buffer any
output. (Contrast to gdb_cmd.)
(gdb_prompt_command): New function to return gdb's prompt.
(find_file_in_dir): New functon which searches source paths
for a given filename.
(gdb_find_file): New function which returns path to given file -- uses
find_file_in_dir.
(gdbtk_init): Install "gdb_immediate", "gdb_find_file", and
"gdb_prompt"
commands into interpreter.
- Ian Lance Taylor <ian@cygnus.com>
* gdbtk.c (gdbtk_timer_going): If __CYGWIN32__, new static
variable.
(gdb_cmd): If __CYGWIN32__, if executing the load command, call
gdbtk_start_timer and gdbtk_stop_timer.
(call_wrapper): If __CYGWIN32__, if the timer is going, turn it
off. Clear load_in_progress.
(x_event): If load_in_progress, quit if download_cancel_ok.
(gdbtk_start_timer): Set gdbtk_timer_going.
(gdbtk_stop_timer): Clear gdbtk_timer_going.
(gdbtk_wait): Call x_event.
(gdbtk_init): Call ide_create_win_grab_command if
__CYGIN32__.
(gdb_clear_file): Clear stop_pc.
the directory name
* Merge (lots) with foundry-971118-build
* Makefile.in (install-only): install the new gdbtk, not the old
* top.h: add declaration of get_prompt
* top.c (get_prompt): new function
* gdbtk.c (gdbtk_call_command): also run idle hooks for class_trace
commands
(gdbtk_init): add new commands "gdb_get_locals", "gdb_get_args",
"gdb_get_function", "gdb_get_line", "gdb_get_file",
"gdb_tracepoint_exists", "gdb_get_tracepoint_info", "gdb_actions",
and "gdb_prompt"
(gdb_get_vars_command): new function
(gdb_get_line_command): new function
(gdb_get_file_command): new function
(gdb_get_function_command): new function
(gdb_get_tracepoint_info): new function
(gdbtk_create_tracepoint): new function
(gdbtk_delete_tracepoint): new function
(tracepoint_notify): new function
(tracepoint_exists): new function
(gdb_actions_command): new function
(gdb_tracepoint_exists_command): new function
(gdb_prompt_command): new function
* main.tcl: initialize gdbtk_state(readline)
* console.tcl (invoke): get realine working
(activate): add prompt argument for readline
(setprompt): add prompt argument for readline
* interface.tcl (gdbtk_tcl_readline): hack to get readline working
* lots: Merge with foundry-971118-build
* console.tcl (setprompt): get prompt from gdb
* prefs.tcl (pref_set_defaults): add tracepoint defaults
* interface.tcl (gdbtk_tcl_tracepoint): new function
* src.tcl (constructor): set default behavior of left click, make
a tracepoint dot, too
(fill_files): "new" function: ripped out of "location"
(location): use fill_files instead
(do_bp): add support for tracepoints
(bp_line): add support for tracepoints
(set_tracepoint): new function
(config_win): add "Set tracepoint here" to right-click menu
* actiondlg.tcl: new file to help with tracepoint data collection actions
* tracedlg.tcl: new file to help with tracepoints
* findvar.c (registers_changed): Likewise.
Fixes memory "leak" reported by HP. Call from execute_command is for general
alloca cleanup; call from registers_changed is to fix hp's specific problem.
* Makefile.in, configure.in, aclocal.m4: Add Itcl, Tix, and
IDE configuration information.
* gdbtk.c (breakpoint_notify): Send address, linenumber and
filename when a breakpoint is set. Avoids call to bp_info.
(gdbtk_init): Call Tcl_FindExecutable(). Add code to handle
Itcl, Tix and IDE initialization.
* defs.h (init_ui_hook): Change prototype to accept one arg.
* main.c (gdb_init): Change prototype to accept one arg.
* top.c (gdb_init): Accepts one argument which it uses to
call (*init_ui_hook), which will be gdbtk_init(). This is
used for calling Tcl_FindExecutable().
* gdbtcl/breakpoint.tcl (gdbtk_tcl_breakpoint): Change to
accept variable number of args for compatibility with
cchanges in gdbtk.c.
* configure: Regenerated.
* gdbtcl/tclIndex: Regenerated.
that directory.
* defs.h utils.c (error warning): Make message be const.
* main.c (fputs_unfiltered): Only send gdb_stdout and gdb_stderr
to hook. Otherwise send it to fputs.
* monitor.c monitor.h (monitor_get_dev_name): New function. Does
the obvious.
* remote-e7000.c: Remove debugify stuff. Change printf, fprintf
to _filtered forms to make output appear in GUIs. Replace all
uses of SERIAL_READCHAR with readchar, which has better error
checking.
* (e7000_parse_device): Add prototype.
* (readchar): Improve doc. Handle random serial errors.
* (expect): Disable notice_quit code. It's busted. Remove
serial error handling (it's now handled in readchar). Remove
remote_debug echoing. That's handled in readchar as well.
* (e7000_parse_device): Remove serial_flag arg. It's not
necessary.
* (e7000_open): Split into two pieces. Second part is
e7000_start_remote, and is error protected. Now, when we connect
to the target, we setup the initial frame and registers so that
the user gets an immediate indication of where the target is.
* (gch): Remove debug output. That's handled by readchar.
* (e7000_read_inferior_memory): Handle errors better.
* (_initialize_remote_e7000): Get rid of `<xxx>' things from
command names. They show up when doing completion and confuse
things horribly.
* ser-e7kpc.c: Remove the last seven months of brain damage. Get
rid of the DLL's since we can access the device directly from Win32s
and Win95. Get rid of debugify crud.
* serial.c: Remove debugify cruft.
* (serial_logchar serial_log_command serial_write serial_readchar
serial_send_break serial_close): Merge common functionality into
serial_logchar. Clean up rest of routines.
* sparclet-rom.c: Disembowel. Leave only download routine.
Download routine now switches to remote target automatically.
* top.c (disconnect): Only define if SIGHUP is defined. Cleans
up MSVC/Win32 problem.
* utils.c (gdb_flush): Don't call hook unless it's for gdb_stdout
or gdb_stderr.
* config/sh/tm-sh.h: Define TARGET_SH for WinGDB.
* config/sparc/tm-sparclet.h: Remove override for prompt.