2006-01-26 Daniel Jacobowitz Backport: 2006-01-24 Daniel Jacobowitz PR gdb/1914 * fork-child.c (fork_inferior): Don't call solib_create_inferior_hook. * infcmd.c (post_create_inferior): Call solib_add, solib_create_inferior_hook, and re_enable_breakpoints_in_shlibs. (attach_command): Don't call solib_add or re_enable_breakpoints_in_shlibs. Call post_create_inferior instead. * remote.c (remote_open_1): Don't call solib_create_inferior_hook or observer_notify_inferior_created. Call post_create_inferior instead. * corelow.c: Don't include "observer.h". (solib_add_stub): Deleted. (core_open): Don't call observer_notify_inferior_created or solib_add_stub. Call post_create_inferior instead. * inf-ptrace.c: Don't include "observer.h". (inf_ptrace_attach): Don't call observer_notify_inferior_created. * inf-ttrace.c: Don't include "observer.h". (inf_ttrace_attach): Don't call observer_notify_inferior_created. * inferior.h (solib_create_inferior_hook): Remove redundant prototype. * inftarg.c: Don't include "observer.h". (child_attach): Don't call observer_notify_inferior_created. * Makefile.in: Update dependencies. 2006-01-26 Daniel Jacobowitz Backport: 2006-01-24 Daniel Jacobowitz * infcmd.c: Include "observer.h". (post_create_inferior): New function. (run_command_1): Call it. Also call proceed. * inferior.h (post_create_inferior): New prototype. * Makefile.in (infcmd.o): Update. * gnu-nat.c (gnu_create_inferior): Don't call proceed. * go32-nat.c (go32_create_inferior): Likewise. * nto-procfs.c (procfs_create_inferior): Likewise. * procfs.c (procfs_create_inferior): Likewise. * remote-sim.c (gdbsim_create_inferior): Likewise. * remote.c (extended_remote_create_inferior) (extended_remote_async_create_inferior): Likewise. * win32-nat.c (win32_create_inferior): Likewise. * wince.c (child_create_inferior): Likewise. * monitor.c (monitor_create_inferior): Don't call proceed. Set the PC manually. * ocd.c (ocd_create_inferior): Likewise. * remote-e7000.c (e7000_create_inferior): Likewise. * remote-m32r-sdi.c (m32r_create_inferior): Likewise. * remote-mips.c (mips_create_inferior): Likewise. * remote-rdi.c (arm_rdi_create_inferior): Likewise. * remote-rdp.c (remote_rdp_create_inferior): Likewise. * remote-sds.c (sds_create_inferior): Likewise. * remote-st.c (st2000_create_inferior): Likewise. * inf-ptrace.c (inf_ptrace_create_inferior): Don't call proceed or observer_notify_inferior_created. * inf-ttrace.c (inf_ttrace_create_inferior): Likewise. * inftarg.c (child_create_inferior): Likewise. 2006-01-24 Daniel Jacobowitz * gdb/gdbserver/linux-arm-low.c: Move #include below ELF_GREGSET_T definition. 2005-10-20 Julian Brown * gdb/arm-tdep.c (thumb2_modify_constant): Silence compiler warning. (thumb_scan_prologue): Fix typo. 2005-10-20 Julian Brown * gdb/arm-tdep.c (bitcount): Move function higher up in file. (thumb2_it_block): New function. Find the next instruction to be executed in an IT block. (thumb_get_next_pc): Handle 16- and 32-bit Thumb-2 instructions. 2005-10-20 Julian Brown * gdb/arm-tdep.c (submask, bit, bits, sbits): Move macro definitions. (thumb_skip_prologue): Don't require frame pointer. Handle Thumb-2 prologue instructions. (thumb_get_insn): New function. Read a Thumb or Thumb-2 instruction from memory. (arm_skip_prologue): Change comment to include Thumb-2. (thumb2_modify_constant): New function. Perform the Thumb-2 12-bit immediate transformation. (thumb_scan_prologue): Handle Thumb-2 prologue instructions. 2005-10-20 Paul Brook * arm-tdep.c (arm_iwmmxt_type): New. (arm_build_iwmmxt_type): New function. (arm_register_type): Use it. 2005-03-30 Daniel Jacobowitz * gdb/Makefile.in (arm-linux-nat.o): Update dependencies. * gdb/arm-linux-nat.c: Include "gdb_assert.h". (PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS): Define. (arm_linux_has_wmmx_registers): New flag. (GET_THREAD_ID): Remove stray punctuation. (IWMMXT_REGS_SIZE): Define. (fetch_wmmx_regs, store_wmmx_regs): New functions. (fetch_inferior_registers, store_inferior_registers): Call them. (arm_linux_available_registers): New function. * gdb/inftarg.c (child_xfer_partial): Handle TARGET_OBJECT_AVAILABLE_REGISTERS. * gdb/config/arm/nm-linux.h (arm_linux_available_registers): Add prototype. (NATIVE_XFER_AVAILABLE_REGISTERS): Define. * gdb/gdbserver/linux-arm-low.c (arm_fill_wmmxregset) (arm_store_wmmxregset): Remove stray text. (arm_available_registers): Remove debugging output. Use hex. * gdb/gdbserver/regcache.c (num_registers): Make global. * gdb/gdbserver/server.c (handle_p_packet, handle_P_packet): Check the value of regnum. 2005-03-28 Paul Brook Daniel Jacobowitz * gdb/Makefile.in: arm-tdep.o depends on $(observer_h). * gdb/arm-linux-nat.c (fetch_fpregister, fetch_fpregs, store_fpregister, store_fpregs): Rename... (fetch_fpa_register, fetch_fpa_regs, store_fpa_register, store_fpa_regs): ... to this. * gdb/arm-linux-tdep.c (arm_linux_init_abi): Provide ABI specific overrides. * gdb/arm-tdep.c: Include opserver.h. (struct gdbarch_tdep_info): Add. (arm_push_dummy_call): Handle doubleword alignment. (arm_register_type): Handle iWMMXt and VFP regs. (arm_register_byte): Ditto. (arm_pseudo_register_read): New function. (arm_pseudo_register_write): New function. (arm_dwarf_reg_to_regnum): New function. (arm_register_sim_regno): Handle iWMMXT regs. (arm_register_remote_regno): New function. (arm_extract_return_value): Use new macro names. (arm_register_name): Handle iWMMXt and VFP registers. (arm_sim_available_registers): New function. (arm_update_architecture): New function. (arm_gdbarch_init): Handle optional register sets. Register new hooks. Fix misleading error message. (_initialize_arm_tdep): Call observer_attach_inferior_created. * gdb/arm-tdep.h (ARM_NUM_FP_ARG_REGS, ARM_LAST_FP_ARG_REGNUM, FP_REGISTER_SIZE, NUM_FREGS): Rename ... (ARM_NUM_FPA_ARG_REGS, ARM_LAST_FPA_ARG_REGNUM, FPA_REGISTER_SIZE, NUM_FPA_REGS): ... to this. (NUM_IWMMXT_COP0REGS, NUM_IWMMXT_COP1REGS, NUM_IWMMXT_REGS, IWMMXT_COP0_REGSIZE, IWMMXT_COP1_REGSIZE, NUM_VFP_XREGS, VFP_XREG_SIZE, NUM_VFP_SREGS, VFP_SREG_SIZE, NUM_VFP_PSEUDOS): Define. (struct gdbarch_tdep): Add target_has_iwmmxt_regs, target_has_vfp_regs, first_iwmmxt_regnum, target_iwmmxt_regnum, first_vfp_regnum, first_vfp_pseudo and target_vfp_regnum. * gdb/gdbarch.c (struct gdbarch): Add remote_num_g_packet_regs, sim_available_registers and register_remote_regno. (startup_gdbarch, verify_gdbarch): Ditto. (gdbarch_dump): Dump new fields. (gdbarch_remote_num_g_packet_regs_p, gdbarch_remote_num_g_packet_regs, set_gdbarch_remote_num_g_packet_regs, gdbarch_sim_available_registers_p, gdbarch_sim_available_registers, set_gdbarch_sim_available_registers, gdbarch_register_remote_regno_p, gdbarch_register_remote_regno, set_gdbarch_register_remote_regno): New functions. * gdb/gdbarch.h: Add prototypes. * gdb/gdbarch.sh: Add new fields. (deprecated_current_gdbarch_select_hack): Call flush_cached_frames. * gdb/remote-sim.h (gdbsim_create_inferior): Call observer_notify_inferior_created. (gdbsim_xfer_partial): New function. (init_gdbsim_ops): Use it. * gdb/remote.c (struct remote_state): Add num_g_regs. (init_remote_state): Only consider hard regs. Allow target to provide register mapping. (packet_reg_from_regnum): Don't check pseudo regs. (packet_reg_from_pnum): Ditto. (remote_protocol_qPart_availableRegisters): Add. (set_remote_protocol_qPart_availableRegisters_packet_cmd, show_remote_protocol_qPart_availableRegisters_packet_cmd): New functions. (fetch_register_using_p, store_register_using_P): Handle arbitrary register mappings. (fetch_registers_using_g): New function. (remote_fetch_registers): Use it. (store_registers_using_G): New function. (remote_store_registers): Use it. (remote_xfer_partial): Handle TARGET_OBJECT_AVAILABLE_REGISTERS. (show_remote_cmd): Display availableRegisters. (_initialize_remote): Register qPart_availableRegisters. * gdb/target.h (enum target_object): Add TARGET_OBJECT_AVAILABLE_REGISTERS. * gdb/gdbserver/configure.srv (arm*-*-linux*): set srv_linux_regsets=yes. * gdb/gdbserver/linux-arm-low.c (PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS): Define. (arm_fill_gregset, arm_store_gregset, arm_fill_wmmxregset, arm_store_wmmxregset, arm_available_registers): New functions. (target_regsets): Add. (the_low_target): Use arm_available_registers. * gdb/gdbserver/linux-low.c (linux_available_registers): New function. (linux_target_op): Use it. * gdb/gdbserver/linux-low.h (gdbserver/linux-low.h): Add available_registers. (use_regsets_p): Declare. * gdb/gdbserver/regcache.c (g_register_bytes): Add. (regcache_invalidate, registers_to_string, registers_from_string): Use it. (set_register_cache): Set g_register_bytes. (supply_register_as_string): New function. * gdb/gdbserver/regcache.h (supply_register_as_string): Add prototype. * gdb/gdbserver/server.c (handle_query): Handle qPart:availableRegisters. (handle_p_packet, handle_P_packet): New functions. (main): Handle 'p' and 'P' packets. * gdb/gdbserver/target.h (struct target_ops): Add available_registers. * gdb/regformats/reg-arm.dat: Add last_g_reg and iWMMXT regs. * gdb/regformats/regdat.sh: Handle last_g_reg. * gdb/regformats/regdef.h (set_register_cache): Update prototype. 2005-04-29 Paul Brook * gdb/remote-sim.c (SIGTRAP): Provide default defnition. * gdb/signals/signals.c (SIGRAP): Ditto. 2005-04-25 Paul Brook * gdb/configure.tgt: Don't build rdi-share library. * gdb/config/arm/embed.mt: Ditto. 2005-03-25 Daniel Jacobowitz * gdb/Makefile.in (arm-linux-nat.o): Update dependencies. * gdb/arm-linux-nat.c: Include "gdb_proc_service.h". (PTRACE_GET_THREAD_AREA): Define. (ps_get_thread_area): New function. * gdb/gdbserver/Makefile.in (linux-arm-low.o): Update dependencies. * gdb/gdbserver/linux-arm-low.c: Include "../gdb_proc_service.h". (PTRACE_GET_THREAD_AREA): Define. (ps_get_thread_area): New function. 2005-03-25 Daniel Jacobowitz * gdb/elfread.c (elf_symtab_read): Skip symbols which BFD considers special.