Since nobody had made any changes to i386v-nat.c on sourceware since
the repository was started, we were still getting the version from the
vendor branch. (If you don't understand how the vendor branch works,
treasure your innocence.) I naively assumed that, to see what changes
had been introduced in version 1.2, one should diff it with 1.1,
as they say in TV Guide, "with hilarious results".
This change simply restores i386v-nat.c to what it used to be before I
started bungling around. The text of this revision should be
identical to that of revision 1.1.1.3, which was the former head of
the trunk. (Yes, 1.1.1.3 was the head of the trunk. As I said,
treasure your innocence.)
* symfile.h (struct section_addr_info ): Remove fields for special
treatment of .text, .data and .bss sections.
* solib.c (symbol_add_stub): The special field text_addr is not
available anymore. Search for the .text field the hard way.
* symfile.c (build_section_addr_info_from_section_table): Don't
fill in {text, data, bss}_addr any more.
(default_symfile_offsets): Don't use {text, data, bss}_addr fields
to fill in section_offsets for objfile.
(syms_from_objfile): Don't deal with {text, data, bss}_addr as a
special case anymore.
(add_symbol_file_command): Ditto.
* symfile.c (add_symbol_file_command): Rewrite the arguments
processing part. Simplify syntax of command. Remove support for
rombug.
(_initialize_symfile): Update help message for add-symbol-file
command.
* gdbarch.sh (IEEE_FLOAT): New entry.
* gdbarch.c, gdbarch.h: Regenerated.
* valprint.c (IEEE_FLOAT): Provide a default #definition for this.
(print_floating): Use IEEE_FLOAT as if it were an expression; use
the code specific to IEEE-format numbers whenever the value of
IEEE_FLOAT is non-zero.
* config/a29k/tm-a29k.h, config/alpha/tm-alpha.h,
config/arc/tm-arc.h, config/arm/tm-arm.h, config/fr30/tm-fr30.h,
config/h8300/tm-h8300.h, config/i386/tm-i386.h,
config/i960/tm-i960.h, config/m88k/tm-m88k.h,
config/mips/tm-mips.h, config/pa/tm-hppa.h,
config/sparc/tm-sparc.h, config/delta/tm-delta.h,
config/frv/tm-frv.h (IEEE_FLOAT): For all ports that #define
IEEE_FLOAT, make sure they give it the value (1).
functions which architectures can redefine, defaulting to
generic_pointer_to_address and generic_address_to_pointer.
* findvar.c (extract_typed_address, store_typed_address,
generic_pointer_to_address, generic_address_to_pointer): New
functions.
(POINTER_TO_ADDRESS, ADDRESS_TO_POINTER): Provide default
definitions.
(extract_address, store_address): Doc fixes.
* values.c (value_as_pointer): Doc fix.
(value_from_pointer): New function.
* defs.h (extract_typed_address, store_typed_address): New
declarations.
* inferior.h (generic_address_to_pointer,
generic_pointer_to_address): New declarations.
* value.h (value_from_pointer): New declaration.
* ax-gdb.c (const_var_ref): Use value_from_pointer, not
value_from_longest.
* blockframe.c (generic_push_dummy_frame): Use read_pc and
read_sp, not read_register.
* c-valprint.c (c_val_print): Use extract_typed_address instead of
extract_address to extract vtable entries and references.
* cp-valprint.c (cp_print_value_fields): Use value_from_pointer
instead of value_from_longest to extract the vtable's address.
* eval.c (evaluate_subexp_standard): Use value_from_pointer
instead of value_from_longest to compute `this', and for doing
pointer-to-member dereferencing.
* findvar.c (read_register): Use extract_unsigned_integer, not
extract_address.
(read_var_value): Use store_typed_address instead of store_address
for building label values.
(locate_var_value): Use value_from_pointer instead of
value_from_longest.
* hppa-tdep.c (find_stub_with_shl_get): Use value_from_pointer,
instead of value_from_longest, to build arguments to __d_shl_get.
* printcmd.c (set_next_address): Use value_from_pointer, not
value_from_longest.
(x_command): Use value_from_pointer, not value_from_longest.
* tracepoint.c (set_traceframe_context): Use value_from_pointer,
not value_from_longest.
* valarith.c (value_add, value_sub): Use value_from_pointer, not
value_from_longest.
* valops.c (find_function_in_inferior, value_coerce_array,
value_coerce_function, value_addr, hand_function_call): Same.
* value.h (COERCE_REF): Use unpack_pointer, not unpack_long.
* values.c (unpack_long): Use extract_typed_address to produce
addresses from pointers and references, not extract_address.
(value_from_longest): Use store_typed_address instead of
store_address to produce pointer and reference values.
* acconfig.h (HAVE_PRGREGSET_T, HAVE_PRFPREGSET_T, HAVE_LWPID_T,
HAVE_PSADDR_T): Add them here instead of in config.in.
* acconfig.h (PRFPREGSET_T_BROKEN): New define.
* configure.in: Add check for broken prfpregset_t type.
* lin-thread.c (gdb_prfpregset): New typedef, depends on
definition of PRFPREGSET_T_BROKEN.
(ps_lgetfpregs, ps_lsetfpregs, p_td_thr_getfpregs,
p_td_thr_setfpregs, thread_db_fetch_registers,
thread_db_store_registers): Use gdb_prfpregset_t instead of
prfpregset_t.
* config.in: Regenerated.
* configure: Regenerated.
* config/i386/tm-i386sol2.h (HAVE_I387_REGS): Define.
* i386v4-nat.c (supply_fpregset, fill_fpregset): Add code
to handle floating point registers if NUM_FREGS is not zero.
hardware breakpoint resources, return EBUSY.
(go32_handle_nonaligned_watchpoint): If the argument WHAT is not
one of the enumerated values, return EINVAL.
(line_completion_function): When completing on file names, use
gdb_completer_file_name_break_characters as word break
characters for the readline library.
* wrapper.h: Remove definitions of internal functions.
* wrapper.c: Remove definitions of exported functions (which are
already in wrapper.h) and make static all internal wrap_* functions.
Don't include "bfd-elf.h".
(address_significant_size): Delete variable.
(dwarf2_build_psymtabs_hard): Don't set it, or check for
consistency between it and the Dwarf 2 compilation unit header
address size.
(read_address): Don't mask off bits above
address_significant_size.
* Makefile.in (dwarf2read.o): Don't depend on $(elf_bfd_h).
(elf_bfd_h): Remove variable; it's no longer used.
* ChangeLog: Correct date on last entry.
* arm-linux-tdep.c (arm_linux_push_arguments): New function.
* config/arm/tm-linux: Redefined PUSH_ARGUMENTS for Linux.
* config/arm/tm-embed: Fix build warning from redefinition of
LOWEST_PC.
* config/arm/tm-arm.h: Remove TARGET_BYTE_ORDER_SELECTABLE.
* config/arm/tm-wince.h: Remove TARGET_BYTE_ORDER_SELECTABLE and
TARGET_BYTE_ORDER. Add TARGET_BYTE_ORDER_SELECTABLE_P to
override default in tm-arm.h. Use default target byte order
from tm-arm.h.
of PROC_SERVICE_IS_OLD.
(ps_pglobal_lookup, ps_pdread, ps_pdwrite, ps_ptread, ps_ptwrite,
rw_common): Change argument type from psaddr_t to gdb_ps_addr_t.
(NEW_PROC_API): Define on Solaris 7 and 8 as well as 6.
* acconfig.h (_MSE_INT_H): Define on Solaris 7.
* configure: Regenerate.
* config.in: Regenerate.
Change to rely on PIDGET etc.
* config/i386/nm-i386sol2.h (TARGET_HAS_WATCHPOINTS,
TARGET_CAN_USE_HARDWARE_WATCHPOINT, HAVE_CONTINUABLE_WATCHPOINT,
STOPPED_BY_WATCHPOINT, target_[insert/remove]_watchpoint):
define. Allow target to use procfs hardware watchpoints.
* config/sparc/nm-sun4sol2.h: ditto.
* config/i386/tm-i386sol2.h (PIDGET, TIDGET, MERGEPID): modify
definitions to use 16 bits for the pid, 15 bits for the tid, and
1 bit for the flag.
* config/sparc/tm-sun4sol2.h: ditto.
(SOFTWARE_SINGLE_STEP, SOFTWARE_SINGLE_STEP_P): undefine.
* testsuite/gdb.threads/pthreads.exp (all_threads_running): Allow
for more than 15 thread increments.
* arm-linux-tdep.c: Resolve implicit function declarations by
including target.h and value.h. Inclusion of symtab.h is
no longer needed.
* ChangeLog: Fix formatting of previous entry.
dependencies. Created ARM Linux specific arm-linux-tdep.c file and moved
missing code into it from arm-linux-nat.c.
2000-04-05 Scott Bambrough <scottb@netwinder.org>
* arm-linux-tdep.c: New file.
* arm-linux-nat.c (fetch_fpregs): Remove unused code.
(arm_get_longjmp_target): Moved it and all defines
it uses to arm-linux-tdep.c.
(arm_linux_extract_return_value): Moved to
arm-linux-tdep.c.
* config/arm/linux.mt: Add arm-linux-tdep.c to TDEPFILES.
below the code to sort out additions and removals. That way, we
always catch all loaded shared libraries whose symbols we haven't
grabbed yet.
* solib.c (solib_add): Don't try to free a shared object's objfile
if it doesn't have one. Duh.
* solib.c (solib_add): If a pattern was given, but it doesn't
match any currently loaded shared libraries, print a message;
don't just be silent.
* config/i386/tm-go32.h (TARGET_LONG_DOUBLE_BIT): Remove
definition (and use the common one in tm-i386.h).
(REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW): Likewise.
(I386_DJGPP_TARGET): Don't define, it's no longer required.
(LOW_RETURN_REGNUM, HIGH_RETURN_REGNUM): Remove definition,
i386-tdep.c defines it for all x86 targets.
(LD_I387, HEX_LONG_DOUBLE_INPUT): Remove.
* config/djgpp/fnchange.lst: Add i386-linux-tdep.c.
* config/djgpp/djcheck.sh: Edit the copyright year out of the test
results. Fix editing of `main' arguments for non-GNU Sed.
error() during parse_and_eval_type().
(check_stub_method): Call safe_parse_type instead of
parse_and_eval_type().
* wrapper.c (gdb_parse_and_eval_type): New wrapper function.
(wrap_parse_and_eval_type): New support function.
* wrapper.h (gdb_parse_and_eval_type): Prototype.
(wrap_parse_and_eval_type): Prototype.
values that can be represented exactly.
* gdb.base/call-ar-st.exp (print print_small_structs): Fixed to match
above change, and to not check against the directory part of the source
file name.
(step into print_long_arg_list): Likewise.
(print print_small_structs from print_long_arg_list): Likewise.
(print print_long_arg_list): Likewise.
* wrapper.c (gdb_value_subscript, wrap_value_subscript): New functions.
Safe version of value_subscript.
* varobj.c (): Use gdb_value_subscript() to get an array element value.
* ui-file.c: Include "gdb_string.h"
* cli-out.c: Include gdb_string.h to avoid compiler warnings.
* wrapper.[ch] (struct gdb_wrapper_arguments): Change fields into
unions, since they are all used to hold both pointers and ints
at various times. Casting pointer to int and vice versa gives
warnings (and is not safe) if they are not the same size.
* defs.h (struct continuation_arg): make 'data' a union, to avoid
casting problems when int and pointer are not the same size.
* event-top.c (command_handler): use data as a union.
(command_line_handler_continuation): ditto.
* infcmd.c (step_1_continuation): use data as a union. Re-indent.
(step_once): ditto. (finish_command_continuation): ditto.
(finish_command): ditto.
* breakpoint.c (until_break_command): use data as a union.
(until_break_command_continuation): ditto.
* utils.c (add_intermediate_continuation): fix typo in comment.
breakpoint.c, breakpoint.h (remove_hw_watchpoints): New function.
infrun.c (resume): Remove hardware watchpoints before stepping
when CANNOT_STEP_HW_WATCHPOINTS is nonzero.
* breakpoint.c (insert_breakpoints, do_enable_breakpoint):
Reselect the saved frame silently after frame selection for
watchpoint evaluation.
(insert_breakpoints): Add missing space in `Hardware watchpoint
deleted' message. Do not reinsert hardware watchpoint if it is
already marked for deletion at next stop.
expectation of additional changes before release), update
ISBN, add copy of top-level menu for @ifhtml, remove explicit
node links, rephrase and/or shorten lines to fix formatting
problem in both regular and @smallbook formats.
* annotate.texi: Shorten lines in example, use smallexample
consistently everywhere.
* Makefile.in: Add comment about texinfo 4.0 html generation.
(SFILES_INCLUDED): Add annotate.texi.
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.
* 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.
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.
* 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.
From Philippe De Muyter <phdm@macqel.be>
* 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.
* 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.
(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.