* hppa-hpux-tdep.c (IS_32BIT_TARGET): New.
(in_opd_section): New.
(hppa32_hpux_find_global_pointer): Rename from
hppa_hpux_som_find_global_pointer.
(hppa64_hpux_find_global_pointer): New.
(ldsid_pattern): New.
(hppa_hpux_search_pattern): New.
(hppa32_hpux_search_dummy_call_sequence): New.
(hppa64_hpux_search_dummy_call_sequence): New.
(hppa_hpux_find_import_stub_for_addr): New.
(hppa_hpux_sr_for_addr): New.
(hppa_hpux_find_dummy_bpaddr): New.
(hppa_hpux_init_abi): Use IS_32BIT_TARGET predicate.
(hppa_hpux_som_init_abi): Set find_global_pointer method to
hppa32_hpux_find_global_pointer instead of
hppa_hpux_som_find_global_pointer.
(hppa_hpux_elf_init_abi): Set find_global_pointer method.
* hppa-tdep.c (hppa_init_objfile_priv_data): New.
(read_unwind_info): Use function to initialize objfile-private data.
(hppa32_push_dummy_call): Don't automatically set the RP if there is
a push_dummy_code method.
(hppa64_push_dummy_call): Retrieve and set the global pointer.
Don't automatically set the RP if there is a push_dummy_code method.
* hppa-tdep.h (hppa_objfile_private): Add dummy_call_sequence_reg and
dummy_call_sequence_addr members.
(hppa_init_objfile_priv_data): New prototype.
* hppa-tdep.h (hppa_lookup_stub_minimal_symbol): Add declaration.
* solib-som.c (som_solib_create_inferior_hook): Replace stub
msymbol search by call to hppa_lookup_stub_minimal_symbol. This
extends the search to all objfiles, not just shared libraries.
Remove unused variable.
signed number in twos complement, based on the size of this
number.
(read_range_type): Add support for reading octal signed bounds
in twos complements, based on the size of the type.
(read_type_number, read_cpp_abbrev, read_member_functions,
read_cpp_abbrev, read_one_struct_field, read_baseclasses,
read_struct_type, read_array_type, read_enum_type,
read_sun_builtin_type, read_sun_floating_type): Update calls to
read_huge_number.
(read_type): Update call to read_range_type.
* Makefile.in (pa64solib_h, somsolib_h): Delete.
(solib_pa64_h, solib_som_h): New.
(HFILES_NO_SRCDIR, ALLDEPFILES): Replace somsolib.h with solib-som.h.
(hppa-hpux-tdep.o, hpread.o): Update dependencies.
(pa64solib.o, somsolib.o): Delete.
(solib-pa64.o, solib-som.o): New.
* hppa-hpux-tdep.c: Include new solib interfaces.
(hppa_hpux_som_init_abi): Attach to SOM solib interface.
(hppa_hpux_elf_init_abi): Attach to PA64 ELF solib interface.
* hppa-tdep.c (internalize_unwinds): If solib_get_text_base method
is available, use it to determine the base of unwind records.
* hppa-tdep.h (gdbarch_tdep): Add new solib methods.
* hpread.c: Replace somsolib.h with solib-som.h.
(hpread_process_one_debug_symbol): Use target vector to get thread
start address.
* config/pa/hppa64.mt (TDEPFILES): Use new solib interface.
* config/pa/hppahpux.mt (TDEPFILES): Likewise.
* config/pa/hpux.mh (NATDEPFILES): Delete references to target objects.
* config/pa/tm-hppah.h: Use new solib interface.
* frame.c (get_prev_frame): When unwinding normal frames, check
that the PC isn't zero.
* hppa-tdep.c (hppa_stub_frame_unwind_cache): Delete check for a
zero PC.
(hppa_hpux_save_state_offset): New function, replacing variable
with the same name.
(hppa_cannot_fetch_register, hppa_cannot_store_register): Remove
functions.
(hppa_hpux_fetch_register): Don't call hppa_cannot_fetch_register.
Use new hppa_hpux_save_state_offset function. Add special
handling for handling 64-bit "flags" register.
(hppa_hpux_store_register): Likewise.
(hppa_hpux_child_can_run): Tweak comment.
(inf_ttrace_attach): Likewise.
(inf_ttrace_resume_callback): New function.
(inf_ttrace_resume): Don't use TT_PROC_CONTINUE. Iterate over all
lwps and call inf_ttrace_resume_callback instead.
(inf_ttrace_wait): Handle TTEVT_BPT_SSTEP.
* mn10300-tdep.c: New file. This is a re-implementation of
the mn10300 target back-end using the new frame api etc.
* mn10300-tdep.h: New file.
* config/mn10300/mn10300.mt: New file (or replace old file).
* configure.tgt: Add mn10300 target.
osabi sniffer, signal handling initializer, 'in_dynsym_resolve_code'
function and nto_set_target function.
(struct nto_target_ops): Put comments inline with struct. Add osabi
sniffer hook. Redefine macros to permit testing/assignment. Remove
nto_ prefix from members.
* nto-tdep.c (nto_find_and_open_solib): Allocate all buffers
dynamically to support arbitrary root paths. Check for basename of
lib in search path and then check for absolute.
(nto_in_dynsym_resolve_code): New function.
(nto_core_sniffer): New function.
(regset_core_fns): Register core sniffer.
(nto_initialize_signals): New function.
(_initialize_nto_tdep): Move signal initialization code to above to
avoid initialization race conditions.
(nto_set_target): New function.
* nto-procfs.c: Minor formatting/indenting changes.
(procfs_is_nto_target): New function.
(procfs_open): Set nto_is_nto_target.
(_initialize_procfs): Ditto. Remove notice_signals() call to avoid
initialization race conditions.
(procfs_create_inferior): Resume inferior after creation.
* i386-nto-tdep.c: Declare i386_nto_target.
(init_i386nto_ops): Initialize i386_nto_target instead of
current_nto_target.
(i386nto_init_abi): Initialize signals. Call nto_set_target. Set
TARGET_SO_IN_DYNSYM_RESOLVE_CODE.
(_initialize_i386nto_tdep): Call init_i386nto_ops. Register osabi sniffer.
* solib-pa64.c (pa64_relocate_section_addresses): Properly relocate
text and data sections.
(pa64_current_sos): Also include the dld in the list of current shared
objects.
(pa64_solib_get_solib_by_pc): Update comments.
(pa64_solib_get_text_base): New function.
(pa64_solib_select): Set solib_get_text_base method.
(thread_get_info_callback): Include LWP ID in thread ID.
(thread_from_lwp, check_event, find_new_threads_callback): Likewise.
(lwp_from_thread): Use the LWP ID from the thread ID.
* hppa-tdep.c (hppa_stub_Frame_unwind_cache): Stop unwinding if
unwinding from a frame with pc == 0.
(hppa_stub_frame_this_id): Likewise.
(hppa_stub_frame_prev_register): Only provide real values if the frame
cache is not NULL.
(inf_ttrace_num_lwps): New variable.
(inf_ttrace_num_lwps_in_syscall): Renamed from
inf_ttrace_num_threads_in_syscall.
(inf_ttrace_him): Track TTEVT_LWP_CREATE, TTEVT_LWP_EXIT and
TTEVT_LWP_TERMINATE events.
(inf_ttrace_create_inferior): Assert that INF_TTRACE_NUM_LWPS is
zero.
(inf_ttrace_mourn_inferior): Set INF_TTRACE_NUM_LWPS to zero.
(inf_ttrace_attach): Assert that INF_TTRACE_NUM_LWPS is zero.
Track TTEVT_LWP_CREATE, TTEVT_LWP_EXIT and TTEVT_LWP_TERMINATE
events.
(inf_ttrace_wait): Report status as TARGET_WAITKIND_SPURIOUS by
default. Handle TTEVT_LWP_CREATE, TTEVT_LWP_EXIT and
TTEVT_LWP_TERMINATE events.
(inf_ttrace_thread_alive, inf_ttrace_pid_to_str): New functions.
(inf_ttrace_target): Set to_thread_alive and to_pid_to_str.
* Makefile.in (inf-ttrace.o): Update dependencies.
prototypes.
* hppa-tdep.c (hppa_read_pc): Rename from hppa_target_read_pc.
Make global. Remove HP-UX specific code. Use
frame_unwind_register_unsigned instead of
frame_unwind_register_signed.
(hppa_write_pc): Rename from hppa_target_write_pc. Make global.
Remove HP-UX specific code.
(hppa_unwind_pc): Make global. Remove HP-UX specific code.
(hppa_frame_prev_register_helper): Set "flags" register to zero
for all unwound frames.
(hppa_gdbarch_init): Adjust.
* hppa-hpux-tdep.c (HPPA_HPUX_SS_INSYSCALL): New define.
(hppa_hpux_read_pc, hppa_hpux_write_pc)
(hppa_hpux_unwind_pc): New functions.
(hppa_hpux_init_abi): Set read_pc, write_pc and unwind_pc.
(get_field, put_field): Assert that the format is one we can handle.
Simplify logic accordingly.
(floatformat_normalize_byteorder): New function.
(convert_floatformat_to_doublest): Use floatformat_normalize_byteorder
to normalize and select modified byte order. Pass modified byte order
to get_field.
(floatformat_is_negative, floatformat_is_nan, floatformat_mantissa):
Likewise.
(convert_doublest_to_floatformat): Select an appropriate intermediate
byte order if necessary. Always convert to the final format before
returning.
STOPPED_BY_WATCHPOINT. Point out that target_stopped_data_address
is not needed unless data-read and data-access watchpoints are
supported. Add a description of how GDB checks whether the
inferior stopped because a watchpoint was hit.
(struct inf_ttrace_page): New.
(struct inf_ttrace_page_dict): New.
(inf_ttrace_num_threads_in_syscall)
(inf_ttrace_reenable_page_protections): New variables.
(inf_ttrace_enable_syscall_events)
(inf_ttrace_disable_syscall_events, inf_ttrace_get_page)
(inf_ttrace_remove_page, inf_ttrace_mask_page_protections)
(inf_ttrace_enable_page_protections)
(inf_ttrace_disable_page_protections)
(inf_ttrace_insert_watchpoint, inf_ttrace_remove_watchpoint)
(inf_ttrace_can_use_hw_breakpoint)
(inf_ttrace_region_size_ok_for_hw_watchpoint)
(inf_ttrace_stopped_by_watchpoint): New functions.
(inf_ttrace_him): Remove unsused varaible `tts'.
(inf_ttrace_create_inferior): Add assertionts.
(inf_ttrace_mourn_inferior): Clear page dictionary.
(inf_ttrace_attach): Set initial event mask.
(inf_ttrace_detach): Reset number of threads in system call.
(inf_ttrace_wait): Deal with system call events.
(inf_ttrace_target): Initialize "hardware" watchpoint-related
parts of the target vector.
(_initialize_inf_ttrace): New prototype and function.
(alpha_cannot_fetch_register): Exclude registers numbers which
are no longer used from the list of registers that can be fetched.
(alpha_cannot_store_register): Exclude registers numbers which
are no longer used from the list of registers that can be stored.
* alpha-nat.c (fetch_osf_core_registers): Add missing value in
core_reg_mapping array.
* hppa-linux-tdep.c (insns_match_pattern_relaxed): New function.
(hppa_linux_in_dyncall): Check that we are inside the range of
$$dyncall, not necessarily at the first insn.
(hppa_linux_in_solib_call_trampoline): Identify a trampoline
even if the pc does not point to the first insn of the trampoline.
2004-11-24 Fred Fish <fnf@specifixinc.com>
* rs6000-tdep.c (skip_prologue): Use line table info to skip over
compiler generated function calls made as part of a prologue.
* inf-ttrace.h: New file.
* hppa-hpux-nat.c [HAVE_TTRACE]: Include <sys/ttrace>.
Include "inf-ttrace.h".
(ss_mpsfu_high): Define to ss_tlsp if necessary.
(hppa_hpux_fetch_register, hppa_hpux_store_register): Use
ptid_get_pid instead of PIDGET. Modify to handle both ttrace and
ptrace systems.
(_initialize_hppa_hpux_nat) [HAVE_TTRACE]: Call inf_ttrace_traget
instead of inf_ptrace_target.
* config/pa/hpux.mh (NATDEPFILES): Add inf-ttrace.o.
* Makefile.in (inf_ttrace_h): New variable.
(hppa-hpux-nat.o): Update dependency.
(inf-ttrace.o): New dependency.
(ALLDEPFILES): Add inf-ptrace.c and inf-ttrace.c.
(sparc32_frame_cache): For functions where there is no debugging
information to help us determine whether it's a struct-return
function or not, fallback on checking whether the instruction
at the return address is an "unimp" instruction or not.
hpux-thread.c to suppress children from running.
(hppa_hpux_child_can_run): New function.
(_initialize_hppa_hpux_nat): Use hppa_hpux_child_can_run.
* hpux-thread.c: Include string.h and hppa-tdep.h.
(FLAGS_REGNUM, SP_REGNUM, PC_REGNUM): Rename to HPPA_FLAGS_REGNUM,
HPPA_SP_REGNUM and HPPA_PCOQ_HEAD_REGNUM, respectively.
(hpux_thread_store_registers): Replace deprecated_registers with
calls to regcache_raw_read.
* config/pa/hpux11.mh, config/pa/hpux11w.mh: Delete HOST_IPC.
(linux_test_for_tracefork): Make more robust and verbose. Take
an ORIGINAL_PID argument and test for PTRACE_SETOPTIONS first.
(linux_supports_tracefork, linux_supports_tracevforkdone): Take a PID
argument. Update calls to linux_test_for_tracefork.
(linux_enable_event_reporting, child_follow_fork)
(child_insert_fork_catchpoint, child_insert_vfork_catchpoint)
(child_insert_exec_catchpoint): Update calls to
linux_supports_tracefork and linux_supports_tracevforkdone.
* hppah-nat.c (store_inferior_registers): Fix warning from ambiguous
expression.
(store_inferior_registers): Correct formatting. Replace uses of
deprecated_registers with calls to regcache_raw_read,
regcache_raw_write_part and regcache_raw_read_part.
(record_minimal_symbol, read_ofile_symtab): Replace
DEPRECATED_STREQ and DEPRECATED_STREQN with strcmp and strncmp.
* Makefile.in (dbxread.o): Update dependencies.
parse_and_eval_address to u_long before converting it to a pointer
type.
* i386fbsd-nat.c (_initialize_i386fbsd_nat): Change type of
ps_strings from int to u_long.
* i386obsd-nat.c (_initialize_i386obsd_nat): Cast _ps.val to
u_long instead of CORE_ADDR.
Don't define CRLF_SOURCE_FILES and DIRNAME_SEPARATOR.
* source.c (OPEN_MODE, FDOPEN_MODE): Remove the definitions in the
branch that doesn't define CRLF_SOURCE_FILES; always use
binary-mode open.
(print_source_lines_base, forward_search_command)
(reverse_search_command): Enable the code that accepts DOS-style
CRLF line endings on all platforms (this removes the need for
CRLF_SOURCE_FILES).
* defs.h: (DIRNAME_SEPARATOR) [__MSDOS__]: Define to ';'.
* config/djgpp/fnchange.lst: Group renames for opcode directory
together.
* config/djgpp/djconfig.sh: Replace file names that don't exist
anymore with existing files, for checking the unpacked
distribution.
* config/djgpp/config.sed (am_cv_exeext, lt_cv_sys_max_cmd_len):
Export pre-cooked values in configure-* targets that begin with
"@test -f stage_last".
* pa64solib.c (pa64_solib_thread_start_addr): Rename from
so_lib_thread_start_addr.
* pa64solib.h (so_list): Forward declare.
(pa64_solib_thread_start_addr): Prototype.
* somsolib.c (SHL_LOAD, SHL_UNLOAD): Define if not already defined.
(no_shared_libraries): Remove.
(som_solib_thread_start_addr): Rename from so_lib_thread_start_addr.
* somsolib.h (som_solib_thread_start_addr): Likewise; prototype.
* hpread.c (hpread_process_one_debug_symbol): Use either the som or
the elf solib handler to find the start address.
* config/pa/hppahpux.mh (NATDEPFILES): Move target-specific support
files to the target makefile.
* config/pa/hpux1020.mh (NATDEPFILES): Likewise.
* config/pa/hpux11.mh (NATDEPFILES): Likewise.
* config/pa/hpux11w.mh (NATDEPFILES): Likewise.
* config/pa/hppa64.mt (TDEPFILES): Put target-specific support
files for symbol reading and shared library handling here.
* config/pa/hppahpux.mt (TDEPFILES): Likewise.
(PA_SOM_ONLY): Define so we can build a 32-bit SOM only target
without bringing in 64-bit support.
* pa64solib.c (pa64_solib_thread_start_addr): Rename from
so_lib_thread_start_addr.
* pa64solib.h (so_list): Forward declare.
(pa64_solib_thread_start_addr): Prototype.
* somsolib.c (SHL_LOAD, SHL_UNLOAD): Define if not already defined.
(no_shared_libraries): Remove.
(som_solib_thread_start_addr): Rename from so_lib_thread_start_addr.
* somsolib.h (som_solib_thread_start_addr): Likewise; prototype.
* hpread.c (hpread_process_one_debug_symbol): Use either the som or
the elf solib handler to find the start address.
* config/pa/hppahpux.mh (NATDEPFILES): Move target-specific support
files to the target makefile.
* config/pa/hpux1020.mh (NATDEPFILES): Likewise.
* config/pa/hpux11.mh (NATDEPFILES): Likewise.
* config/pa/hpux11w.mh (NATDEPFILES): Likewise.
* config/pa/hppa64.mt (TDEPFILES): Put target-specific support
files for symbol reading and shared library handling here.
* config/pa/hppahpux.mt (TDEPFILES): Likewise.
(PA_SOM_ONLY): Define so we can build a 32-bit SOM only target
without bringing in 64-bit support.
* cris-tdep.c (cris_register_offset): Delete, never called.
(cris_spec_reg_applicable): Delete cris_ver_sim.
* MAINTAINERS: List d10v as OBSOLETE.
* rdi-share/host.h (FOPEN_WB): #ifdef 0 out definitions of
FOPEN_WB et.al., defined by "fopen-bin.h".
* hppa-tdep.c (skip_prologue_hard_way): Make static, add
stop_after_branch parameter and use it to determine if we should look
at the delay slot of the first branch insn to find prologue insns.
(hppa_skip_prologue): Update comment and call to skip_prologue_hard_way.
(hppa_frame_cache): Likewise.
* remote.c (putpkt_binary) Fix PR gdb/1806. Send an ACK
when an unexpected packet is received, as the target stubs
continually retransmit the same packet until ACKed.
* blockframe.c (inside_entry_func): Move to .....
* frame.c (inside_entry_func): ... here, and make static.
(backtrace_past_entry): New flag.
(get_prev_frame): Stop backtrace at the entry function if enabled
by flag. Update comments.
(_initialize_frame): Add command to set backtrace_past_entry flag.
* defs.h (inside_entry_func): Remove prototype.
doc/
* gdb.texinfo: Document set/show backtrace past-entry commands.
Rearrange index entries for set/show backtrace past-main.
* sentinel-frame.c (sentinel_frame_prev_pc): New function.
(sentinel_frame_unwinder): Add the prev_pc method.
* frame.c (frame_pc_unwind): Use the per-frame pc unwinder when
available. Do not handle the sentinel-frame case.
* frame-unwind.h (frame_prev_register_ftype): Define.
(struct frame_unwind): Add prev_pc;
* gdb_curses.h: Include term.h here, prefering ncurses/term.h.
* utils.c: Include gdb_curses.h instead of curses.h and term.h.
* tui/tui.c: Don't include term.h.
* configure, config.in: Rebuilt.
* i386-linux-tdep.c (i386_linux_dwarf_signal_frame_p): New.
(i386_linux_init_abi): Call dwarf2_frame_set_signal_frame_p.
* inf-ptrace.c (inf_ptrace_attach): Call
observer_notify_inferior_created.
* inftarg.c (child_attach): Likewise.
* symfile-mem.c: Include "observer.h", "auxv.h", and "elf/common.h".
(symbol_file_add_from_memory): Take NAME argument. Use it for
the new BFD's filename.
(add_symbol_file_from_memory_command): Update call to
symbol_file_add_from_memory.
(struct symbol_file_add_from_memory_args, add_vsyscall_page)
(symbol_file_add_from_memory_wrapper): New.
(_initialize_symfile_mem): Register add_vsyscall_page as an
inferior_created observer.
fetch_inferior_registers. Make static.
(m68kbsd_store_inferior_registers): Rename from
store_inferior_registers. Make static.
(_initialize_m68kbsd_nat): Construct and add target vector.
* config/m68k/nbsdaout.mh (NATDEPFILES): Remove infptrace.o and
inftarg.o. Add inf-ptrace.o.
(NAT_FILE): Set to tm-solib.h.
(LOADLIBES): New variable.
* config/m68k/nbsdelf.mh (NATDEPFILES): Remove infptrace.o and
inftarg.o. Add inf-ptrace.o.
(NAT_FILE): Delete variable.
* config/m68k/obsd.mh (NATDEPFILES): Remove infptrace.o and
inftarg.o. Add inf-ptrace.o.
(NAT_FILE): Set to tm-solib.h.
* config/m68k/nm-nbsdaout.h: Remove file.
from mipsnbsd_ilp32_solib_svr4_fetch_link_map_offsets. Trim sizes
to only include the structure members we actually need.
(mipsnbsd_lp64_fetch_link_map_offsets): Renamed from
mipsnbsd_lp64_solib_svr4_fetch_link_map_offsets. Trim sizes to
only include the structure members we actually need.
(mipsnbsd_init_abi): Update.
* dwarf2-frame.c (dwarf2_frame_cache): Only complain when both the
CFI and the init_reg method leave the register unspecified.
Include the register name in the "Incomplete CFI data" complaint.
Supress leading zeros in the address.
* defs.h (fatal, vfatal): New function prototypes.
* stack.c (backtrace_command_stub): Stub to call backtrace_command_1
via catch_errors.
(backtrace_command): Change to call backtrace_command_stub via
catch_errors instead of calling backtrace_command_1 directly.
(backtrace_full_command): Ditto.
* utils.c (error_stream_1): New static function.
(verror): Change to call error_stream_1 instead of error_stream.
(error_stream): Call error_stream_1 with RETURN_ERROR argument.
(vfatal, fatal): New functions.
prevent cross-objfile references.
(make_cv_type): Doc fix. Don't create cross-objfile references,
even for stub types.
(replace_type): Add assertion to prevent cross-objfile references.
(check_typedef): Never resolve a stub type by copying over a type
from another file.
(mipsnbsd_fetch_inferior_registers): Rename from
fetch_inferior_registers. Make static.
(mipsnbsd_store_inferior_registers): Rename from
store_inferior_registers. Make static.
(_initialize_mipsnbsd_nat): New function and prototype.
* Makefile.in (mipsnbsd-nat.o): Update dependencies.
* config/mips/nbsd.mh (NAT_CLIBS, NAT_FILE): Remove variables.
(NATDEPFILES): Remove infptrace.o and inftarg.o. Add
inf-ptrace.o.
(fill_fpregset): Do not compile for 64-bit systems.
* i386-sol2-nat.c: Don't include "i386v4-nat.c".
* Makefile.in (i386-sol2-nat.o): Update dependencies.
* config/i386/i386sol2.mh (NATDEPFILES): Add back i386v4-nat.c.