* Makefile.in (CONFIG_LOBS): New macro. Configured to the files
that must be added to the gdblib itself.
(DEPFILES): Use CONFIG_LOBS, not CONFIG_OBS.
(INIT_FILES): Include CONFIG_OBS.
(gdb$(EXEEXT)): Depend on CONFIG_OBS and link with it.
(kdb): Ditto.
* configure.in (CONFIG_LOBS): New variable. Object files that must
be added to gdblib for the specific configuration.
* configure: Regenerate.
* Makefile.in (SUBDIR_GDBTK_OBS, SUBDIR_GDBTK_SRCS,
SUBDIR_GDBTK_DEPS, SUBDIR_GDBTK_INITS, SUBDIR_GDBTK_LDFLAGS,
SUBDIR_GDBTK_CFLAGS): New macros. For gdbtk subdir.
* configure.in: Fix typo. It is CONFIG_OBS not CONFIG_OJS.
Use the SUBDIR_GDBTK_* macros instead of hard coded file names.
* configure: Regenerate.
* configure.in: Fix a couple of typos in the handling of the
enable_gdbcli option. Make it check enableval for the result
of AC_ARG_ENABLE.
* configure: Regenerate.
* gdb.base/break.exp (test_clear_command): Use a marker function
rather than 'main' for the test function. Also move this
test to an execution point where the marker function names are
guaranteed to be bound to functions. (Executing tests after a
'finish' from main runs into name conflicts with local names
in __libc_start_main).
* dwarf2read.c (DWARF2_REG_TO_REGNUM): New macro. Provide default
definition. Will be used to translate between the compiler's
register numbering and GDB's (for register variables etc).
(new_symbol): Use DWARF2_REG_TO_REGNUM to translate register ids.
* gdb.base/finish.exp: New test for gdb's "finish" command.
* gdb.base/return2.exp: New test for gdb's "return" command.
* gdb.base/return2.c: New source file for above.
* config/sh/tm-sh.h (struct gdbarch_tdep): Rename fields
{FP15,DR14,FV12}_REGNUM to {FP,DR,FV}_LAST_REGNUM.
* sh-tdep.c (sh_sh3e_register_virtual_type,
sh_sh4_register_virtual_type, sh_do_registers_info,
sh_gdbarch_init, sh_sh4_register_byte, sh_sh4_register_raw_size,
sh_sh4_register_convertible, sh_sh4_register_convert_to_virtual,
sh_sh4_register_convert_to_raw, sh_fetch_pseudo_register,
sh_store_pseudo_register, sh_do_pseudo_register): Ditto.
* sh-tdep.c (sh_gdbarch_init): Use a function pointer to set the
disassembly print function.
(_initialize_sh_tdep): Initialize tm_print_insn using the function
pointer.
* config/sh/tm-sh.h (struct gdbarch_tdep): Get rid of
DR{2,4,6,8,10,12}_REGNUM, FV{4,8}_REGNUM, they are not used
anywhere.
* sh-tdep.c (sh_gdbarch_init): Don't initialize
DR{2,4,6,8,10,12}_REGNUM, FV{4,8}_REGNUM.
* m68hc11-tdep.c (m68hc11_frame_args_address): Fix args address
computation.
(m68hc11_frame_init_saved_regs): Frame pointer is saved only if
the symbol exist.
(m68hc11_analyze_instruction): New function.
(m6811_prologue, m6812_prologue): New prologue description tables.
(m68hc11_guess_from_prologue): Use the above.
(m68hc11_gdbarch_init): Setup gdbarch_tdep for the prologue
descriptions.
``fmt''. Make ``offset'' a CORE_ADDR.
(print_unpack): Delete.
(extended_offset): Construct and return a CORE_ADDR.
(fetch_mips_16): Return an int. Don't assume short is 16 bits.
(unpack_mips16): Rewrite. Add ``extension'' parameter instead of
incorrectly guessing if the instruction had an extension.
(map16): Delete array.
(mips16_op): Delete macro.
(extended_mips16_next_pc): Rewrite of old mips16_next_pc function.
When an extended instruction do a recursive call.
(mips16_next_pc): Call extended_mips16_next_pc.
(mips_next_pc): Cleanup.
* 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.
* mips_pro.exp: Accept either "middle -> top -> main" or
"middle -> main" in the backtrace, because gcc can optimize
tail calls to jumps. Remove setup_xfail for the hppa case.
Add a comment with the original warning messages from PR 3016,
which was filed in 1993, to preserve them for posterity.
* solist.h: Declare new function solib_open.
* solib.c (solib_open): New function. Abstracts some of the
code from solib_map_sections, for finding the binary solib file.
(solib_map_sections): Call solib_open.
* solib-svr4.c (enable_break): Call solib_open.
store_inferior_registers): Support older NetBSD/powerpc systems
from before fp reg support was added. Adapt to register number
changes caused when powerpc target was multi-arched.
to automatically dereference a function pointer for printing
if necessary.
(c_val_print): Use print_function_pointer_address when printing
function pointer addresses.
(sources_info): Replace use of no_symtab_msg with the string
itself.
* linespec.c (no_symtab_msg): Remove declaration.
(decode_line_1): Replace uses of no_symtab_msg with the string
itself.
* regcache.c (read_register_bytes): Failing to set register_valid
is not necessarily an error, if the register is a pseudo-register.
Some pseudo-registers are never marked as valid, so that they will
be read anew every time. Determining if a pseudo-register is valid
(or should be marked invalid) may be difficult, whereas just
recomputing it may be cheap.
* config/monitor.exp (gdb_target_cmd): Abstracts some of the
code from gdb_target_monitor, so it can be used independantly
for gdbserver. Also comment out an unnecessary PUTS.
* gdb.base/a2-run.exp: Use gdb_skip_stdio_test.
* gdb.base/corefile.exp: Expect the message "Program is being
debugged already" when we send the "corefile" command, since
the preceeding gdb_load may have connected gdb to a remote target.
* gdb.base/display.exp: Disable hardware watchpoints if new
board info variable "no_hardware_watchpoints" is true.
Replace single-letter commands with more readable ones.
* gdb.base/recurse.exp (recurse_tests): Disable hardware watchpoints
if new board info variable "no_hardware_watchpoints" is true.
* gdb.base/restore.exp (restore_tests): Call gdb_skip_stdio_tests
to see if stdio (printf) testing is possible.
* gdb.base/watchpoint.exp: Disable hardware watchpoints if new
board info variable "no_hardware_watchpoints" is true. Use new
proc "gdb_skip_stdio_tests" to see if printf tests are possible.
step_over_calls.
* infcmd.c (step_over_calls): Change definition.
(step_1): Use new enum values in relation to step_over_calls.
(step_once): Ditto.
(until_next_command): Ditto.
* infrun.c (clear_proceed_status): Ditto.
(handle_inferior_event): Ditto.
* inferior.h (step_stop_if_no_debug): New variable.
* infrun.c (step_stop_if_no_debug): Declare.
(handle_inferior_event): Stop the step command if we entered a function without
line info.
(_initialize_infrun): New command 'set step-mode' to control the step command.
* infcmd.c (step_once): Switch to stepi mode if there is no line info
(and switching is enabled).
* target.c (do_xfer_memory): Only perform a single memory transfer
instead of iterating to tranfer the entire region. Higher layers
are expected to call this function multiple times for partial
transfers.
(target_xfer_memory_partial): Remove unused local variables.
2000-11-10 Nick Duffek <nsd@redhat.com>
* target.c (target_xfer_memory_partial): Return bytes transferred
instead of 0.
* gdb.c++/templates.exp (test_template_breakpoints): Change Britsh
spelling "cancelled" to U.S. spelling "canceled" to match changes
made to gdb.
* gdb.c++/ovldbreak.exp: Ditto.
SOLIB_SYMBOLS_MANUAL code, cleanup of AIX shared library handling code.
* rs6000-nat.c (vmap_symtab): Do not try to modify offsets
if symbols are not yet loaded.
(vmap_add_symbols): New function to add symbols for a vmap entry.
(add_vmap): Turn errors into warnings, return NULL vmap upon
failure. Add symbols via vmap_add_symbols only if requested.
(xcoff_relocate_core): Allow debugging of core files without an
executable file. Handle NULL returns from add_vmap gracefully.
* xcoffsolib.c (solib_add): Remove, no longer needed.
(solib_info): Do not check for new shared libraries if there is no
inferior process.
(sharedlibrary_command): Made static.
Do not check for new shared libraries if there is no inferior process.
Add symbols for requested shared libraries via vmap_add_symbols.
(_initialize_solib): Add `set auto-solib-add' command.
* xcoffsolib.h (vmap_add_symbols): Add prototype declaration.
* config/rs6000/tm-rs6000.h (PC_LOAD_SEGMENT): Move from here ...
* config/rs6000/nm-rs6000.h: ... to here, this is an AIX native
feature.
* config/powerpc/tm-macos.h, config/powerpc/tm-ppc-eabi.h,
config/powerpc/tm-ppc-nw.h, config/rs6000/tm-rs6000ly.h:
Remove #undef PC_LOAD_SEGMENT.
* config/powerpc/aix.mt, config/rs6000/aix4.mt, config/rs6000/rs6000.mt
(TDEPFILES): Move xcoffsolib.o from here ...
* config/powerpc/aix.mh, config/rs6000/aix4.mh, config/rs6000/rs6000.mh
(NATDEPFILES): ... to here, xcoffsolib.o contains AIX native code
only.
* rs6000-tdep.c: Remove #include xcoffsolib.h, no longer needed.
* xcoffsolib.h (xcoff_relocate_symtab_hook): Remove declaration.
* rs6000-nat.c (_initialize_core_rs6000): Remove setting of
xcoff_relocate_symtab_hook, no longer needed.
* xcoffsolib.c (solib_info, sharedlibrary_command): Remove
xcoff_relocate_symtab_hook indirection, call xcoff_relocate_symtab
directly, as xcoffsolib.c is now compiled in native AIX configurations
only.
* Makefile.in: Update dependencies for rs6000-tdep.o, rs6000-nat.o
and xcoffsolib.o.
* wrapper.c (gdb_value_assign): New function. Longjump-free
version of value_assign.
(wrap_value_assign): New function. Wrapper for value_assign.
* wrapper.h: Add declaration for the above.
* varobj.c (varobj_set_value): Use gdb_value_assign, not
value_assign which can longjump. Do not change varobj value if
assign fails.
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.
t_double_values to initialize the FPU before inferior calls are made.
* gdb.base/callfuncs.exp: Test for register preservation after calling
inferior functions. Add tests for continuining, finishing and
returning from a stop in a call dummy.
* config/sh/tm-linux.h: New file. Include generic tm-linux.h,
plus tm-sh.h, then define SVR4_FETCH_LINK_MAP_OFFSETS to use
the sh target function instead of the default link map offsets.
* config/sh/sh.mt: Add solib.o and solib-svr4.o to TDEPFILES.
Use sh/tm-linux.h instead of sh/tm-sh.h.
* sh-tdep.c (sh_linux_svr4_fetch_link_map_offsets):
New function. Construct target-specific link map offsets.
* i386-linux-tdep.c (i386_linux_svr4_fetch_link_map_offsets:
New function. Construct target-specific link map offsets.
* config/i386/tm-linux.h: Use above function instead of default.
2000-10-30 Michael Snyder <msnyder@cleaver.cygnus.com>
* config/i386/tm-linux.h: Remove definition of SVR4_SHARED_LIBS,
and inclusion of solib.h. Move up into ../tm-linux.h.
config/tm-linux.h: Define SVR4_SHARED_LIBS, include solib.h.
* ax-gdb.c (gen_struct_ref): while generating data code, cases of
"collect p1->p2->data" where not covered if p2 is a 'typedefed'
type. this simple fix should forward the type pointer to the real
type.
set_gdbarch_from_file): Fix spelling error.
* v850-tdep.c (v850_target_architecture_hook): Likewise.
* gdbarch.sh: Fix spelling errors in comment.
* gdbarch.c, gdbarch.h: Regenerate.
* ppcnbsd-nat.c (fetch_core_registers, fetch_inferior_registers,
store_inferior_registers): Support older NetBSD/powerpc systems
from before fp reg support was added. Adapt to register number
changes caused when powerpc target was multi-arched.
* stabsread.c (define_symbol): Update comment.
2000-10-26 Pierre Muller <muller@ics.u-strasbg.fr>
* stabsread.c (define_symbol): Set the type_name of the type
of the new symbol to the symbol name for type symbol, if the
language is Pascal.
* symtab.h (SYMBOL_INIT_DEMANGLED_NAME): Initialize the symbol language to auto
instead of unknown, so it will try to demangle the symbol.
* symtab.h (OPNAME_PREFIX_P): Change operator prefix to correct value.
* symtab.c (gdb_mangle_name): Properly handle C++ operators.
* config/gdbserver.exp: Rewritten from the ground up, to make it
compatible with the current dejagnu tree, and to make it work with
the new "gdbserver" in libremote.
* lib/gdb.exp (gdb_skip_float_test): New proc. Skip test if
no floating point support.
(gdb_skip_stdio_test): New proc. Skip test if no stdio support.
* gdb.base/call-ar-st.exp: Use above procs to skip tests.
* gdb.base/call-rt-st.exp: Ditto.
* gdb.base/call-strs.exp: Ditto.
* gdb.base/sizeof.exp (check_sizeof): Skip if no printf support.
* gdb.base/varargs.exp: Skip entire test if no printf support.
* gdb.base/ending-run.exp (Step to return): Skip if no printf supt.
* gdb.base/shlib-call.exp: Skip several tests if no printf support.