Jonathan Larmour [Fri, 24 Mar 2000 21:35:42 +0000 (21:35 +0000)]
* gdb.base/break.exp: Add new test for setting breakpoints on
optimized code so we can test breakpoints work even when function
prologues may be optimized away
Jonathan Larmour [Fri, 24 Mar 2000 21:33:35 +0000 (21:33 +0000)]
* arm-tdep.c (thumb_skip_prologue): Take function end addr argument
so that we can stop searching for the prologue past the function end
(arm_skip_prologue): Call thumb_skip_prologue with function end addr
* m68k-tdep.c (P_LINKL_FP, P_LINKW_FP): Macros renamed from P_LINK_L
and P_LINK_W.
(P_PEA_FP, P_MOVL_SP_FP): New macros.
(P_MOVL, P_LEAL, P_MOVML): Macros renamed from P_MOV_L, P_LEA_L and
P_MOVM_L.
(altos_skip_prologue, isi_skip_prologue): Use P_* macros, not octal
constants.
(delta68_in_sigtramp): New function.
(delta68_frame_args_address, delta68_frame_saved_pc): Ditto.
(m68k_skip_prologue): Use P_* macros, not hex constants.
(m68k_find_saved_regs): Do not expect a fixed sequence of register save
instructions, but accept them in any order; use P_* macros, not octal
or hex constants; recognize also `fmovemx to (fp + displacement)' and
`moveml to (fp + displacement)'.
* m68/tm-delta68.h (IN_SIGTRAMP): New macro.
(FRAME_SAVED_PC, FRAME_ARGS_ADDRESS): Ditto.
Andrew Cagney [Fri, 24 Mar 2000 07:30:07 +0000 (07:30 +0000)]
Fix texinfo-3.12 problems:
* annotate.texi (Annotations): When GDBN omit @chapter and @node entry.
* gdb.texinfo: Check for @ifinfo instead of @ifnottex.
(rluser.texinfo, inc-hist.texinfo, annotate.texi): Add local @chapter
and @node entries.
* gdb.texinfo: Link all top-level nodes.
* inc-hist.texinfo: When GDBN omit the chapter/node.
* rluser.texinfo (Command Line Editing): Ditto.
* 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.
* sol-thread.c (ps_pglobal_lookup): Change argument type from
paddr_t to psaddr_t. This mistake appears to date from an
erroneous man page in Solaris 2.5 -- the correct type from the
system headers has always been psaddr_t.
(ps_pdread, ps_pdwrite, ps_ptread, ps_ptwrite): ditto.
(rw_common): ditto.
* event-loop.c (sys/types.h): File now included unconditionally.
(use_poll): New variable..
(gdb_notifier): poll- and select-versions merged.
(add_file_handler): If HAVE_POLL, check whether poll is usable,
and reset `use_poll' if not.
(create_file_handler): Select poll- or select-version according to
`use_poll'.
(delete_file_handler, handle_file_event): Likewise.
(gdb_wait_for_event, poll_timers): Likewise.
* config/i386/tm-i386aix.h (I386_AIX_TARGET): Remove.
* config/i386/tm-linux.h (LOW_RETURN_REGNUM, HIGH_RETURN_REGNUM):
Remove
* i386-tdep.c (LOW_RETURN_REGNUM, HIGH_RETURN_REGNUM): New defines.
(i386_extract_return_value): Rewritten. Correctly support all
floating-point types and large integer types on targets that use
the standard i386 GDB register layout and return floating-point
values in the FPU.
Jim Blandy [Tue, 21 Mar 2000 20:40:43 +0000 (20:40 +0000)]
* gdbarch.sh: Emit a definition and declaration for gdbarch_free,
a companion to gdbarch_alloc, which allows a gdbarch init function
to free partially-built gdbarch structures.
* gdbarch.c, gdbarch.h: Regenerated.
* breakpoint.c (insert_breakpoints, remove_breakpoint)
(bpstat_stop_status, can_use_hardware_watchpoint): Don't insert,
remove, or check status of hardware watchpoints for entire structs
and arrays unless the user explicitly asked to watch that struct
or array.
(insert_breakpoints): Try to insert watchpoints for all the values
on the value chain, even if some of them fail to insert.
* values.c (value_primitive_field): Set the offset in struct value
we return when the field is a packed bitfield.
* remote.c (remote_threads_extra_info): new function.
Implement the extra thread info query for "info threads".
(remote_threads_info): clean up a bit.
(use_threadinfo_query, use_threadextra_query): new variables.
Control whether GDB will use the new or old protocol for
thread info queries.
(remote_open_1): initialize new variables.
(remote_async_open_1): ditto.
(remote_cisco_open): ditto.
Jim Blandy [Mon, 20 Mar 2000 20:38:29 +0000 (20:38 +0000)]
* i386-linux-nat.c: No need to #include "frame.h" any more.
(LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_OFFSET0,
LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_OFFSET1,
LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_OFFSET2, linux_sigtramp_code,
LINUX_SIGTRAMP_LEN, i386_linux_sigtramp_start,
LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_OFFSET0,
LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_OFFSET1,
linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN,
i386_linux_rt_sigtramp_start, i386_linux_in_sigtramp,
i386_linux_sigcontext_addr, LINUX_SIGCONTEXT_PC_OFFSET,
i386_linux_sigtramp_saved_pc, LINUX_SIGCONTEXT_SP_OFFSET,
i386_linux_sigtramp_saved_sp): Deleted. Folks rightly pointed
out that these are target-dependent, and useful in non-native
configurations. Moved to...
* i386-linux-tdep.c: ... Here, a new file.
* Makefile.in (ALLDEPFILES): Add i386-linux-tdep.c.
(i386-linux-tdep.o): New rule.
(i386-linux-nat.o): We no longer depend on frame.h.
* config/i386/linux.mt (TDEPFILES): Add i386-linux-tdep.o.
* event-loop.c (top-level) [NO_FD_SET]: Deprecate this branch.
Print an error at compile time if we are to use select, but FD_SET
is not available.
(SELECT_MASK, NBBY, FD_SETSIZE, NFDBITS, MASK_SIZE): Define only
if HAVE_POLL is not defined and NO_FD_SET *is* defined.
(create_file_handler) [!HAVE_POLL]: Use FD_SET and FD_CLR.
(delete_file_handler) [!HAVE_POLL]: Use FD_CLR and FD_ISSET.
(gdb_wait_for_event) [!HAVE_POLL]: Copy fd_set sets directly
instead of using memcpy and memset. Use FD_ISSET.
Eli Zaretskii [Sun, 19 Mar 2000 11:53:24 +0000 (11:53 +0000)]
Support for building GDB with DJGPP, and running the test suite on
it:
* config/djgpp/djconfig.sh: New file.
* config/djgpp/config.sed: New file.
* config/djgpp/README: New file.
* config/djgpp/fnchange.lst: New file.
* config/djgpp/djcheck.sh: New file.
Alan Modra [Fri, 17 Mar 2000 02:02:38 +0000 (02:02 +0000)]
Extend the allowed bitfield range (ie. that for which
complain_overflow_bitfield doesn't complain) from -2**(n-1)..2**n-1 to
-2**n..2**n. This might mean that some reloc overflows are no longer
caught, but it solves the address wrap problem for 16-bit relocs
nicely. In any case, ports that rely on complain_overflow_bitfield
for reloc overflow checking were not getting a very good check
previously. A bitfield range in a machine instruction is typically
either the signed or unsigned n bit numbers, not the overlap of these
two ranges.
Joern Rennecke [Thu, 16 Mar 2000 23:50:18 +0000 (23:50 +0000)]
* config/tc-sh.c (md_begin): When encountering insn that are
not supported by the current arch, only change the name if
its contents are the same as prev_name.
(get_specific): If the the architecture doesn't match, fail.
Jim Blandy [Thu, 16 Mar 2000 22:46:30 +0000 (22:46 +0000)]
* i386-tdep.c (LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_OFFSET0,
LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_OFFSET1,
LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_OFFSET2, linux_sigtramp_code,
LINUX_SIGTRAMP_LEN, i386_linux_sigtramp_start,
LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_OFFSET0,
LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_OFFSET1,
linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN,
i386_linux_rt_sigtramp_start, i386_linux_in_sigtramp,
i386_linux_sigcontext_addr, LINUX_SIGCONTEXT_PC_OFFSET,
i386_linux_sigtramp_saved_pc, LINUX_SIGCONTEXT_SP_OFFSET,
i386_linux_sigtramp_saved_sp): Deleted. These all implement
Linux-specific signal trampoline detection, and should be moved to...
* i386-linux-nat.c: ... here.
* config/i386/tm-linux.h (I386_LINUX_SIGTRAMP): No need to define
this any more, since we're not enabling OS-specific code in a
OS-independent file.
Jim Blandy [Wed, 15 Mar 2000 16:55:07 +0000 (16:55 +0000)]
Deal with the inferior unloading shared objects.
* solib.c (current_sos): New function, replacing find_solib.
(find_solib): Deleted.
(free_so): New function.
(clear_solib): Call free_so, instead of writing it out.
(solib_add): Rewritten: compare the inferior's current list of
shared objects with GDB's list, and do the required loads and
unloads.
(info_sharedlibrary_command, solib_address): Don't use find_solib
to walk the list of shared libraries: call solib_add, and then
walk the list at so_list_head normally.
* objfiles.c (free_objfile): Don't call CLEAR_SOLIB, and don't
detach the core target. These tasks are taken care of elsewhere.
* target.c (remove_target_sections): New function.
* target.h (remove_target_sections): New declaration.
* solib.c (symbol_add_stub): Check whether we've already created
an objfile for this shared object first, before doing all that
work to compute section addresses, etc.
* objfiles.c (unlink_objfile): Report an internal error if objfile
doesn't occur in the object_files list.
* solib.c (special_symbol_handling): Delete argument; it's not
used.
* solib.c (SOLIB_EXTRACT_ADDRESS): New macro to extract addresses
from solib structures. Use it throughout solib.c, get rid of all
CORE_ADDR casts.
(struct so_list): Change type of lmaddr to CORE_ADDR.
(first_link_map_member): Change return value type to CORE_ADDR,
update callers.
(solib_add_common_symbols): Change parameter type to CORE_ADDR,
update callers.
(open_symbol_file_object, find_solib): Change type of lm variable
to CORE_ADDR.
Eli Zaretskii [Wed, 15 Mar 2000 12:05:59 +0000 (12:05 +0000)]
[__GO32__]: Include <pc.h>.
Declare _rl_redisplay_after_sigwinch.
[__DJGPP__]: Don't declare term_buffer and term_string_buffer (they are
unused.)
(_rl_get_screen_size) [__DJGPP__]: Call ScreenRows and ScreenCols.
(_rl_init_terminal_io) [__GO32__]: Don't call them here. Instead, call
_rl_get_screen_size. Set terminal_name. Return 0, to be consistent with
the function's declaration.
(ding) [__GO32__]: Support visual bell by calling ScreenVisualBell.
Eli Zaretskii [Wed, 15 Mar 2000 11:57:42 +0000 (11:57 +0000)]
[__GO32__]: Don't undef HANDLE_SIGNALS if __DJGPP__ is defined.
(prepare_terminal_settings, rl_prep_terminal, rl_deprep_terminal)
[__GO32__]: Don't bypass termios code if HAVE_TERMIOS_H is defined.
Eli Zaretskii [Wed, 15 Mar 2000 11:53:33 +0000 (11:53 +0000)]
[__GO32__]: If HAVE_TEMIOS_H is defined, declare readline_default_bindings.
Don't undef HANDLE_SIGNALS if __DJGPP__ is defined.
(readline_initialize_everything): [__GO32__]: Call readline_default_bindings
if HAVE_TERMIOS_H is defined.
(rl_refresh_line) [__GO32__]: Don't use this code if __DJGPP__ is defined.
Eli Zaretskii [Wed, 15 Mar 2000 11:47:46 +0000 (11:47 +0000)]
[__GO32__]: Include <pc.h> only if HAVE_SELECT is undefined.
(rl_unget_char, rl_getc) [__GO32__]: Use the go32-specific code only if
HAVE_SELECT is undefined.
Eli Zaretskii [Wed, 15 Mar 2000 11:41:26 +0000 (11:41 +0000)]
(_rl_move_vert) [__GO32__]: fflush the stream, to make sure cursor position
is up-to-date.
(space_to_eol) [__GO32__]: Clear the screen and home the cursor.
(insert_some_chars) [__GO32__]: Don't write directly to the screen in DJGPP
versions 2.x (it doesn't work).
(delete_chars) [__GO32__]: Ditto.
Eli Zaretskii [Wed, 15 Mar 2000 11:32:18 +0000 (11:32 +0000)]
(_rl_read_file): Use O_BINARY in open. Enable the test for incomplete
read. Strip the CR characters by hand after readin the file.
(rl_read_init_file): Allow for ~/_intputrc on 8+3 filesystems.
Eli Zaretskii [Wed, 15 Mar 2000 11:11:41 +0000 (11:11 +0000)]
* ser-go32.c (dos_noop, dos_raw, dos_noflush_set_tty_state)
(dos_print_tty_state, dos_info, _initialize_ser_dos): Convert
to ISO C. Use ATTRIBUTE_UNUSED to avoid compiler warnings.
(dos_info): Avoid compiler warning when printing a ptrdiff_t.