aboutsummaryrefslogtreecommitdiff
path: root/gdb/linux-nat.c
AgeCommit message (Collapse)AuthorFilesLines
2012-11-26gdb/Pedro Alves1-1/+1
2012-11-26 Maxime Villard <rustyBSD@gmx.fr> Pedro Alves <palves@redhat.com> * common/linux-osdata.c (linux_xfer_osdata_fds): Decrease buffer size parameter passed to readlink by one byte. * fbsd-nat.c (fbsd_pid_to_exec_file): Ditto. * linux-nat.c (linux_child_pid_to_exec_file): Ditto. * nbsd-nat.c (nbsd_pid_to_exec_file): Ditto. * inf-child.c (inf_child_fileio_readlink): Decrease local buffer's size by one byte. gdb/gdbserver/ 2012-11-26 Maxime Villard <rustyBSD@gmx.fr> * hostio.c (handle_readlink): Decrease buffer size parameter passed to readlink by one byte.
2012-11-09 * gdbarch.sh (target_gdbarch): Remove macro.Tom Tromey1-3/+3
(get_target_gdbarch): Rename to target_gdbarch. * gdbarch.c, gdbarch.h: Rebuild. * ada-tasks.c, aix-thread.c, amd64-linux-nat.c, arch-utils.c, arm-tdep.c, auxv.c, breakpoint.c, bsd-uthread.c, corefile.c, darwin-nat-info.c, dcache.c, dsrec.c, exec.c, fbsd-nat.c, filesystem.c, gcore.c, gnu-nat.c, i386-darwin-nat.c, i386-nat.c, ia64-vms-tdep.c, inf-ptrace.c, infcmd.c, jit.c, linux-nat.c, linux-tdep.c, linux-thread-db.c, m32r-rom.c, memattr.c, mep-tdep.c, microblaze-tdep.c, mips-linux-nat.c, mips-linux-tdep.c, mips-tdep.c, monitor.c, moxie-tdep.c, nto-procfs.c, nto-tdep.c, ppc-linux-nat.c, proc-service.c, procfs.c, progspace.c, ravenscar-thread.c, record.c, remote-m32r-sdi.c, remote-mips.c, remote-sim.c, remote.c, rl78-tdep.c, rs6000-nat.c, rx-tdep.c, s390-nat.c, sol-thread.c, solib-darwin.c, solib-dsbt.c, solib-frv.c, solib-ia64-hpux.c, solib-irix.c, solib-pa64.c, solib-som.c, solib-spu.c, solib-sunos.c, solib-svr4.c, solib.c, spu-linux-nat.c, spu-multiarch.c, spu-tdep.c, symfile-mem.c, symfile.c, symtab.c, target-descriptions.c, target.c, target.h, tracepoint.c, windows-nat.c, windows-tdep.c, xcoffsolib.c, cli/cli-dump.c, common/agent.c, mi/mi-interp.c, python/py-finishbreakpoint.c, python/py-inferior.c, python/python.c: Update.
2012-11-09gdb/Pedro Alves1-0/+5
2012-11-09 Pedro Alves <palves@redhat.com> * gdbarch.sh (target_gdbarch) <gdbarch.h>: Reimplement as macro. (get_target_gdbarch) <gdbarch.h>: New function. (startup_gdbarch) <gdbarch.h>: Declare. <gdbarch.c> (target_gdbarch): Delete. <gdbarch.c> (deprecated_target_gdbarch_select_hack): Set the current inferior's gdbarch. <gdbarch.c> (get_target_gdbarch): New function. * inferior.c: Include target-descriptions.h. (free_inferior): Free target description info. (add_inferior_with_spaces): Set the inferior's initial architecture. (clone_inferior_command): Copy the original inferior's target description if it was user specified. (initialize_inferiors): Add comment. * inferior.h (struct target_desc_info): Forward declare. (struct inferior) <gdbarch>: New field. * linux-nat.c: Include target-descriptions.h. (linux_child_follow_fork): Copy the parent's architecture and target description to the child. * target-descriptions.c: Include inferior.h. (struct target_desc_info): New structure, holding the equivalents of ... (target_desc_fetched, current_target_desc) (target_description_filename): ... these removed globals. (get_tdesc_info, target_desc_info_from_user_p) (copy_inferior_target_desc_info, target_desc_info_free): New. (target_desc_fetched, current_target_desc) (target_description_filename): Reimplemented as convenience macros. (tdesc_filename_cmd_string): New global. (set_tdesc_filename_cmd): Copy the string manipulated by the "set tdescs filename ..." commands to the per-inferior equivalent. (show_tdesc_filename_cmd): Get the value to show from the per-inferior description filename. (_initilize_target_descriptions): Change the "set/show tdesc filename" commands' variable. * target-descriptions.h (struct target_desc, struct target_desc_info) (struct inferior): Forward declare. (target_find_description, target_clear_description) (target_current_description): Adjust comments. (copy_inferior_target_desc_info, target_desc_info_free) (target_desc_info_from_user_p). Declare. gdb/testsuite/ 2012-11-09 Pedro Alves <palves@redhat.com> * gdb.multi/multi-arch.exp: New.
2012-08-16Change detach_breakpoints to take a ptid instead of a pidJoel Brobecker1-2/+1
Before this change, detach_breakpoints would take a pid, and then set inferior_ptid to a ptid that it constructs using pid_to_ptid (pid). Unfortunately, this ptid is not necessarily valid. Consider for instance the case of ia64-hpux, where ttrace refuses a register-read operation if the LWP is not provided. This problems shows up when GDB is trying to handle fork events. Assuming GDB is configured to follow the parent, GDB will try to detach from the child. But before doing so, it needs to remove all breakpoints inside that child. On ia64, this involves reading inferior (the child's) memory. And on ia64-hpux, reading memory requires us to read the bsp and bspstore registers, in order to determine where that memory is relative to the value of those registers, and thus to determine which ttrace operation to use in order to fetch that memory (see ia64_hpux_xfer_memory). This patch therefore changes detach_breakpoints to take a ptid instead of a pid, and then updates all callers. One of the consequences of this patch is that it trips an assert on GNU/Linux targets. But this assert appears to have not actual purpose, and is thus removed. gdb/ChangeLog: * breakpoint.h (detach_breakpoints): pid parameter is now a ptid. * breakpoint.c (detach_breakpoints): Change pid parameter into a ptid. Adjust code accordingly. * infrun.c (handle_inferior_event): Delete variable child_pid. Update call to detach_breakpoints to pass the child ptid for fork events. * linux-nat.c (linux_nat_iterate_watchpoint_lwps): Remove assert that inferior_ptid's lwp is zero. (linux_handle_extended_wait): Update call to detach_breakpoints. * inf-ttrace.c (inf_ttrace_follow_fork): Update call to detach_breakpoints.
2012-08-02gdb/Yao Qi1-6/+6
* dwarf2loc.c (entry_values_debug): Add 'unsigned'. (_initialize_dwarf2loc): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * dwarf2loc.h: Update the declaration of 'entry_values_debug'. * dwarf2read.c (dwarf2_die_debug): Add 'unsigned'. (_initialize_dwarf2_read): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * darwin-nat.c (dwarwin_debug_flag): Add 'unsigned'. (_initialize_darwin_inferior): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * frame.c (frame_debug): Add 'unsigned'. (_intialize_frame): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * frame.h: Update the declaration of 'frame_debug'. * gdbtypes.c (overload_debug): Add 'unsigned'. (_initialize_gdbtypes): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * inferior.h: Update declaration of 'debug_infrun'. * infrun.c (debug_infrun): Add 'unsigned'. (_initialize_infrun): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * jit.c (jit_debug): Add 'unsigned'. (_initialize_jit): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * linux-nat.c (debug_linux_nat): Add 'unsigned'. (_initialize_linux_nat): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * linux-thread-db.c (libthread_db_debug): Add 'unsigned'. (_initialize_thread_db): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * machoread.c (mach_o_debug_level): Add 'unsigned'. (_initialize_machoread): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * mi/mi-cmd-var.c: Update the declaration of 'varobjdebug'. * microblaze-tdep.c (microblaze_debug_flag): Add 'unsigned'. (_initialize_microblaze_tdep): Call add_setshow_zuinteger_cmd intead of add_setshow_zinteger_cmd. * mips-tdep.c (mips_debug): Add 'unsigned'. (_initialize_mips_tdep): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * monitor.c (monitor_debug): Add 'unsigned'. (_initialize_remote_monitors): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * observer.c (observer_debug): Add 'unsigned'. (_initialize_observer): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * parse.c (expressiondebug): Add 'unsigned'. (_initialize_parse): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * record.c (record_debug): Add 'unsigned'. (_initialize_record): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * record.h: Update the declaration of 'record_debug'. * stap-probe.c (stap_expression_debug): Add 'unsigned'. (_initialize_stap_probe): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * serial.c (global_serial_debug_p): Add 'unsigned'. (_initialize_serial): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * solib-dsbt.c (solib_dsbt_debug): Add 'unsigned'. (_initialize_dsbt_solib): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * solib-frv.c (solib_frv_debug): Add 'unsigned'. (_initialize_frv_solib): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * target.c (targetdebug): Add 'unsigned'. (initialize_targets): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * valops.c (overload_debug): Add 'unsigned'. * varobj.c (varobjdebug): Add 'unsigned'. (_initialize_varobj): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * xtensa-tdep.c (xtensa_debug_level): Add 'unsigned'. (_initialize_xtensa_tdep): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * arch-utils.h: Remove the declaration of 'gdbarch_debug'. * gdbarch.sh (gdbarch_debug): Add 'unsigned'. (extern void _initialize_gdbarch): Call add_setshow_zuinteger_cmd instead of add_setshow_zinteger_cmd. * gdbarch.c, gdbarch.h: Re-generated.
2012-07-202012-07-20 Pedro Alves <palves@redhat.com>Pedro Alves1-2/+10
* linux-nat.c (linux_nat_wait): Dump the passed in target options. * target.c (target_wait): Likewise. (str_comma_list_concat_elem, do_option, target_options_to_string): New functions. * target.h (target_options_to_string): Declare.
2012-07-162012-07-16 Marc Khouzam <marc.khouzam@ericsson.com>Marc Khouzam1-5/+2
Pedro Alves <palves@redhat.com> * linux-nat.c (linux_nat_detach): Don't unregister from the event loop.
2012-07-07gdb/Jan Kratochvil1-0/+2
* common/linux-ptrace.c: Include gdb_assert.h. <__i386__> (linux_ptrace_test_ret_to_nx_instr): New declaration. <__i386__>: Include sys/reg.h, sys/mman.h, signal.h, sys/wait.h and stdint.h. (linux_ptrace_test_ret_to_nx, linux_ptrace_init_warnings): New functions. * common/linux-ptrace.h (linux_ptrace_init_warnings): New declarations. * linux-nat.c (linux_child_post_attach) (linux_child_post_startup_inferior): Call linux_ptrace_init_warnings. gdb/gdbserver/ * gdbserver/linux-low.c (initialize_low): Call linux_ptrace_init_warnings.
2012-07-06gdb/Jan Kratochvil1-32/+12
* linux-nat.c (resume_lwp, linux_nat_resume): Remove LP->SIGINFO clearing. (save_siginfo): Remove. (stop_wait_callback, linux_nat_filter_event): Remove the save_siginfo call. (resume_stopped_resumed_lwps): Remove LP->SIGINFO clearing. (linux_nat_get_siginfo): Use PTRACE_GETSIGINFO. * linux-nat.h (struct lwp_info): Remove field siginfo.
2012-07-06gdb/Jan Kratochvil1-4/+7
Code cleanup for the next patch. * arm-linux-nat.c (arm_linux_stopped_data_address): Change variable siginfo_p to siginfo, update its users incl. the linux_nat_get_siginfo call for it. * ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise. (ia64_linux_stopped_data_address): * linux-nat.c (linux_nat_get_siginfo): Add parameter siginfo, change the return value. * linux-nat.h (linux_nat_get_siginfo): Likewise. * ppc-linux-nat.c (ppc_linux_stopped_data_address): Change variable siginfo_p to siginfo, update its users incl. the linux_nat_get_siginfo call for it.
2012-06-28gdb/Pedro Alves1-153/+55
2012-06-28 Jan Kratochvil <jan.kratochvil@redhat.com> Pedro Alves <palves@redhat.com> * gdbthread.h (ALL_THREADS): New macro. (thread_list): Declare. * infrun.c (handle_inferior_event) <spurious signal>: Don't keep going, but instead fall through to the stepping handling. * linux-nat.c (resume_lwp): New parameter 'signo'. Resume with the passed in signal. Adjust debug output. (resume_callback): Rename to ... (linux_nat_resume_callback): ... this. Pass the thread's last stop signal, if in "pass" state. (linux_nat_resume): Adjust to rename. (stop_wait_callback): New assertion. Don't respawn signals; instead let the LWP remain with SIGNALLED set. (linux_nat_wait_1): Remove flushing of pending SIGSTOPs. * remote.c (append_pending_thread_resumptions): New. (remote_vcont_resume): Call it. * target.h (target_resume): Extend comment. gdb/testsuite/ 2012-06-28 Jan Kratochvil <jan.kratochvil@redhat.com> Pedro Alves <palves@redhat.com> * gdb.threads/siginfo-threads.exp: New file. * gdb.threads/siginfo-threads.c: New file. * gdb.threads/sigstep-threads.exp: New file. * gdb.threads/sigstep-threads.c: New file.
2012-05-24gdb/Pedro Alves1-22/+22
2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. gdb/gdbserver/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. include/gdb/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 * gdb/signals.def: Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/arm/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/avr/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/common/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/cr16/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/d10v/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/erc32/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/m32c/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/ppc/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/rl78/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout. sim/rx/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout.
2012-05-24gdb/Pedro Alves1-18/+18
2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace target_signal with gdb_signal throughout. gdb/gdbserver/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace target_signal with gdb_signal throughout. include/gdb/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace target_signal with gdb_signal throughout. sim/common/ 2012-05-24 Pedro Alves <palves@redhat.com> PR gdb/7205 Replace target_signal with gdb_signal throughout.
2012-05-222012-05-22 Pedro Alves <palves@redhat.com>Pedro Alves1-0/+1
* target.h (store_waitstatus): Move declaration ... * inf-child.h (store_waitstatus): ... here. * target.c: Move inclusion of gdb_wait.h, and ... (store_waitstatus): ... this ... * inf-child.c: ... here. * linux-nat.c: Include inf-child.h. * rs6000-nat.c: Include inf-child.h. * spu-linux-nat.c: Include inf-child.h.
2012-04-16gdb/Yao Qi1-2/+2
* common/agent.c (agent_run_command): Add one more parameter `len'. Update callers. * common/agent.h: Update declaration. * linux-nat.c (linux_child_static_tracepoint_markers_by_strid): Update. (linux_child_static_tracepoint_markers_by_strid): Ditto. gdb/gdbserver/ * tracepoint.c (COPY_FIELD_TO_BUF): New macro. (struct tracepoint_action_ops) <send>: New field. (m_tracepoint_action_send, r_tracepoint_action_send): New. (agent_expr_send, x_tracepoint_action_send): New. (l_tracepoint_action_send): New. (cmd_qtdp): Download and install tracepoint according to `use_agent'. (run_inferior_command): Add one more parameter `len'. Update callers. (tracepoint_send_agent): New. (cmd_qtdp, cmd_qtstart): Call tracepoint_send_agent.
2012-03-21struct siginfo vs. siginfo_tThomas Schwinge1-8/+8
gdb/ * amd64-linux-nat.c (amd64_linux_siginfo_fixup): Use siginfo_t instead of struct siginfo. * arm-linux-nat.c (arm_linux_stopped_data_address): Likewise. * ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise. * linux-nat.c (linux_nat_siginfo_fixup, siginfo_fixup) (linux_xfer_siginfo, linux_nat_set_siginfo_fixup) (linux_nat_get_siginfo): Likewise. * linux-nat.h (struct lwp_info, linux_nat_set_siginfo_fixup) (linux_nat_get_siginfo): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * ppc-linux-nat.c (ppc_linux_stopped_data_address): Likewise. * procfs.c (gdb_siginfo_t): Likewise. gdbserver/ * linux-arm-low.c (arm_stopped_by_watchpoint): Use siginfo_t instead of struct siginfo. * linux-low.c (siginfo_fixup, linux_xfer_siginfo): Likewise. * linux-x86-low.c (x86_siginfo_fixup): Likewise. * linux-low.h: Include <signal.h>. (struct siginfo): Remove forward declaration. (struct linux_target_ops) <siginfo_fixup>: Use siginfo_t instead of struct siginfo.
2012-03-13gdb/Jan Kratochvil1-1/+26
* common/linux-procfs.c (linux_proc_get_int): New, from linux_proc_get_tgid, change its LWPID type to pid_t, add parameter field. (linux_proc_get_tgid): Only call linux_proc_get_int. (linux_proc_get_tracerpid): New. (linux_proc_pid_has_state): New, from linux_proc_pid_is_zombie. (linux_proc_pid_is_stopped, linux_proc_pid_is_zombie): Only call linux_proc_pid_has_state. * common/linux-procfs.h (linux_proc_get_tracerpid): New declaration. * common/linux-ptrace.c: Include linux-procfs.h and buffer.h. (linux_ptrace_attach_warnings): New. * common/linux-ptrace.h (struct buffer, linux_ptrace_attach_warnings): New declaration. * linux-nat.c: Include exceptions.h, linux-ptrace.h and buffer.h. (linux_nat_attach): New variables ex, buffer, message and message_s. Wrap to_attach by TRY_CATCH and call linux_ptrace_attach_warnings. gdb/gdbserver/ * linux-low.c (linux_attach_lwp_1): New variable buffer. Call linux_ptrace_attach_warnings. gdb/testsuite/ * gdb.base/attach-twice.c: New files. * gdb.base/attach-twice.exp: New files.
2012-03-13gdb/Jan Kratochvil1-34/+3
* Makefile.in (linux-ptrace.o): New. * common/linux-procfs.c (linux_proc_pid_is_zombie): New, from linux-nat.c. * common/linux-procfs.h (linux_proc_pid_is_zombie): New declaration. * common/linux-ptrace.c: New file. * config/alpha/alpha-linux.mh (NATDEPFILES): Add linux-ptrace.o. * config/arm/linux.mh: Likewise. * config/i386/linux.mh: Likewise. * config/i386/linux64.mh: Likewise. * config/ia64/linux.mh: Likewise. * config/m32r/linux.mh: Likewise. * config/m68k/linux.mh: Likewise. * config/mips/linux.mh: Likewise. * config/pa/linux.mh: Likewise. * config/powerpc/linux.mh: Likewise. * config/powerpc/ppc64-linux.mh: Likewise. * config/powerpc/spu-linux.mh: Likewise. * config/s390/s390.mh: Likewise. * config/sparc/linux.mh: Likewise. * config/sparc/linux64.mh: Likewise. * config/xtensa/linux.mh: Likewise. * linux-nat.c (linux_lwp_is_zombie): Remove, move it to common/linux-procfs.c. (wait_lwp): Rename linux_lwp_is_zombie to linux_proc_pid_is_zombie. gdb/gdbserver/ * Makefile.in (linux-ptrace.o): New. * configure.srv (arm*-*-linux*, bfin-*-*linux*, crisv32-*-linux*) (cris-*-linux*, i[34567]86-*-linux*, ia64-*-linux*, m32r*-*-linux*) (m68*-*-linux*, m68*-*-uclinux*, mips*-*-linux*, powerpc*-*-linux*) (s390*-*-linux*, sh*-*-linux*, sparc*-*-linux*, tic6x-*-uclinux) (x86_64-*-linux*, xtensa*-*-linux*): Add linux-ptrace.o to SRV_TGTOBJ of these targets. * linux-low.c (linux_attach_lwp_1): Remove redundent else clause.
2012-03-05gdb/Jan Kratochvil1-66/+1
Code cleanup. * common/linux-osdata.c (linux_common_core_of_thread): New function comment. * linux-nat.c (linux_nat_wait_1): Replace linux_nat_core_of_thread_1 call by linux_common_core_of_thread. (linux_nat_core_of_thread_1): Remove. * linux-nat.h (linux_nat_core_of_thread_1): Remove declaration. * linux-thread-db.c: Include linux-osdata.h. (update_thread_core): Replace linux_nat_core_of_thread_1 call by linux_common_core_of_thread.
2012-03-03gdb:Yao Qi1-0/+72
* common/agent.c (agent_look_up_symbols): Add one parameter 'arg'. * common/agent.h: Update declaration. * inf-child.c (inf_child_use_agent): New. (inf_child_can_use_agent): New. (inf_child_target): Initialize fields `to_use_agent' and `to_can_use_agent'. * agent.c (agent_new_objfile): New. (_initialize_agent): Add agent_new_objfile to new_objfile observer. * linux-nat.c (linux_child_static_tracepoint_markers_by_strid): New. (linux_target_install_ops): Initialize field `to_static_tracepoint_markers_by_strid'. * remote.c (free_current_marker): Move it to ... * tracepoint.c (free_current_marker): ... here. New. (cleanup_target_stop): New. * tracepoint.h: Declare free_current_marker. * NEWS: Add one entry about `info static-tracepoint-marker'. gdb/gdbserver: * tracepoint.c (tracepoint_look_up_symbols): Update call to agent_look_up_symbols. gdb/testsuite: * gdb.trace/strace.exp: run strace_info_marker in linux native gdb.
2012-03-012012-03-01 Pedro Alves <palves@redhat.com>Pedro Alves1-2/+2
* amd64-linux-tdep.c (amd64_linux_record_signal): Make static. * breakpoint.c (create_exception_master_breakpoint, trace_command) (ftrace_command, strace_command): Make static. * d-lang.c (_initialize_d_language): Declare. * dwarf2expr.c (_initialize_dwarf2expr): Declare. * dwarf2loc.c (_initialize_dwarf2loc): * dwarf2read.c (process_psymtab_comp_unit): Make static. * exec.c (exec_get_section_table): Make static. * i386-linux-tdep.c (i386_linux_record_signal): Make static. * infcmd.c (ensure_valid_thread, ensure_not_tfind_mode): Make static. * inferior.c (remove_inferior_command, add_inferior_command) (clone_inferior_command): Make static. * linux-nat.c (linux_nat_thread_address_space) (linux_nat_core_of_thread): Make static. * linux-tdep.c (_initialize_linux_tdep): Declare. * objc-lang.c (_initialize_objc_lang): Declare. * opencl-lang.c (builtin_opencl_type, opencl_language_arch_info): Make static. (_initialize_opencl_language): Declare. * record.c (_initialize_record): Declare. * remote.c (demand_private_info, remote_get_tib_address) (remote_supports_cond_tracepoints) (remote_supports_fast_tracepoints, remote_get_tracepoint_status): Make static. * skip.c (_initialize_step_skip): Declare. * symtab.c (skip_prologue_using_lineinfo): Make static. * tracepoint.c (delete_trace_state_variable) (trace_variable_command, delete_trace_variable_command) (get_uploaded_tsv, find_matching_tracepoint_location) (find_matching_tsv, create_tsv_from_upload, get_traceframe_info): Make static. * value.c (pack_unsigned_long): Make static. * varobj.c (varobj_ensure_python_env): Make static. * windows-tdep.c (_initialize_windows_tdep): Declare. * xml-syscall.c (make_cleanup_free_syscalls_info): Make static.
2012-02-272012-02-27 Pedro Alves <palves@redhat.com>Pedro Alves1-32/+1
gdb/gdbserver/ * linux-low.c (pid_is_stopped): Delete, moved to common/. (linux_attach_lwp_1): Adjust to use linux_proc_pid_is_stopped. gdb/ * linux-nat.c (pid_is_stopped): Delete, moved to common/. (linux_nat_post_attach_wait): Adjust to use linux_proc_pid_is_stopped. * common/linux-procfs.h (linux_proc_pid_is_stopped): Declare. * common/linux-procfs.c (linux_proc_pid_is_stopped): New function, based on pid_is_stopped from both linux-nat.c and gdbserver/linux-low.c, and renamed.
2012-02-16 * symfile.c (symbol_file_add_main_1): Use inferior'sTom Tromey1-0/+3
symfile_flags. * solib.c (solib_read_symbols): Use inferior's symfile_flags. * linux-nat.c (linux_child_follow_fork): Set symfile_flags on inferior. * infrun.c (handle_vfork_child_exec_or_exit): Set symfile_flags on inferior. (follow_exec): Use inferior's symfile_flags. * inferior.h (struct inferior) <symfile_flags>: New field.
2012-01-24gdb/Jan Kratochvil1-15/+89
Fix watchpoints across inferior fork. * amd64-linux-nat.c (update_debug_registers_callback): Update the comment for linux_nat_iterate_watchpoint_lwps. (amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use linux_nat_iterate_watchpoint_lwps. (amd64_linux_prepare_to_resume): New comment on Linux kernel. * i386-linux-nat.c (update_debug_registers_callback): Update the comment for linux_nat_iterate_watchpoint_lwps. (i386_linux_dr_set_control, i386_linux_dr_set_addr): Use linux_nat_iterate_watchpoint_lwps. (i386_linux_prepare_to_resume): New comment on Linux kernel. * i386-nat.c: Include inferior.h. (dr_mirror): Remove. (i386_inferior_data, struct i386_inferior_data) (i386_inferior_data_get): New. (i386_debug_reg_state): Use i386_inferior_data_get. (i386_cleanup_dregs, i386_update_inferior_debug_regs) (i386_insert_watchpoint, i386_remove_watchpoint) (i386_stopped_data_address, i386_insert_hw_breakpoint) (i386_remove_hw_breakpoint): New variable state, use i386_debug_reg_state instead of DR_MIRROR. * linux-nat.c (delete_lwp): New declaration. (num_lwps): Move here from downwards. (delete_lwp_cleanup): New. (linux_child_follow_fork): Create new child_lp, call linux_nat_new_thread and linux_nat_prepare_to_resume before calling PTRACE_DETACH. (num_lwps): Move upwards. (linux_nat_iterate_watchpoint_lwps): New. * linux-nat.h (linux_nat_iterate_watchpoint_lwps_ftype): New. (linux_nat_iterate_watchpoint_lwps_ftype): New declaration. gdb/testsuite/ Fix watchpoints across inferior fork. * gdb.threads/watchpoint-fork-child.c: New file. * gdb.threads/watchpoint-fork-mt.c: New file. * gdb.threads/watchpoint-fork-parent.c: New file. * gdb.threads/watchpoint-fork-st.c: New file. * gdb.threads/watchpoint-fork.exp: New file. * gdb.threads/watchpoint-fork.h: New file.
2012-01-20 * gdbarch.sh (find_memory_regions): New callback.Ulrich Weigand1-85/+0
* gdbarch.c, gdbarch.h: Regenerate. * gcore.c (gcore_memory_sections): Try gdbarch find_memory_regions callback before falling back to target method. * linux-nat.c (read_mapping, linux_nat_find_memory_regions): Remove. (linux_target_install_ops): No longer install it. * linux-tdep.c (linux_find_memory_regions): New function. (linux_init_abi): Install it.
2012-01-20 * gdbarch.sh (make_corefile_notes): New architecture callback.Ulrich Weigand1-294/+29
* gdbarch.c: Regenerate. * gdbarch.h: Likewise. * gcore.c (write_gcore_file): Try gdbarch_make_corefile_notes before target_make_corefile_notes. If NULL is returned, the target does not support core file generation. * linux-nat.c: Include "linux-tdep.h". (find_signalled_thread, find_stop_signal): Remove. (linux_nat_do_thread_registers): Likewise. (struct linux_nat_corefile_thread_data): Likewise. (linux_nat_corefile_thread_callback): Likewise. (iterate_over_spus): Likewise. (struct linux_spu_corefile_data): Likewise. (linux_spu_corefile_callback): Likewise. (linux_spu_make_corefile_notes): Likewise. (linux_nat_collect_thread_registers): New function. (linux_nat_make_corefile_notes): Replace contents by call to linux_make_corefile_notes passing linux_nat_collect_thread_registers as native-only callback. * linux-tdep.h: Include "bfd.h". (struct regcache): Add forward declaration. (linux_collect_thread_registers_ftype): New typedef. (linux_make_corefile_notes): Add prototype. * linux-tdep.c: Include "gdbthread.h", "gdbcore.h", "regcache.h", "regset.h", and "elf-bfd.h". (find_signalled_thread, find_stop_signal): New functions. (linux_spu_make_corefile_notes): Likewise. (linux_collect_thread_registers): Likewise. (struct linux_corefile_thread_data): New data structure. (linux_corefile_thread_callback): New funcion. (linux_make_corefile_notes): Likewise. (linux_make_corefile_notes_1): Likewise. (linux_init_abi): Install it.
2012-01-20 * gdbarch.sh (info_proc): New callback.Ulrich Weigand1-247/+0
* gdbarch.c, gdbarch.h: Regenerate. * infcmd.c (info_proc_cmd_1): Try gdbarch info_proc callback before falling back to the target info_proc callback. * linux-nat.c: Do not include "cli/cli-utils.h". (linux_nat_info_proc): Remove. (linux_target_install_ops): No longer install it. * linux-tdep.c: Include "cli/cli-utils.h" and <ctype.h>. (read_mapping): New function. (linux_info_proc): Likewise. (linux_init_abi): Install it.
2012-01-20ChangeLog:Ulrich Weigand1-129/+3
* defs.h (enum info_proc_what): Moved here from linux-nat.c * infcmd.c: (info_proc_cmd_1): New function. (info_proc_cmd): New function, moved here from equivalent routine orignally in linux-nat.c. (info_proc_cmd_mappings): Likewise. (info_proc_cmd_stat): Likewise. (info_proc_cmd_status): Likewise. (info_proc_cmd_cwd): Likewise. (info_proc_cmd_cmdline): Likewise. (info_proc_cmd_exe): Likewise. (info_proc_cmd_all): Likewise. (_initialize_infcmd): Install "info proc" command and subcommands. * target.h (struct target_ops): Add to_info_proc. (target_info_proc): Add prototype. * target.c (target_info_proc): New function. * procfs.c (procfs_info_proc): Add prototype. (info_proc_cmd): Rename into ... (procfs_info_proc): ... this. Update argument types as appropriate for a to_info_proc implementation. Handle "what" argument. (procfs_target): Install procfs_info_proc. (_initialize_procfs): No longer install "info proc" command. * linux-nat.c: (enum info_proc_what): Remove. (linux_nat_info_proc_cmd_1): Rename into ... (linux_nat_info_proc): ... this. Update argument types as appropriate for a to_info_proc implementation. (linux_nat_info_proc_cmd): Remove. (linux_nat_info_proc_cmd_mappings): Likewise. (linux_nat_info_proc_cmd_stat): Likewise. (linux_nat_info_proc_cmd_status): Likewise. (linux_nat_info_proc_cmd_cwd): Likewise. (linux_nat_info_proc_cmd_cmdline): Likewise. (linux_nat_info_proc_cmd_exe): Likewise. (linux_nat_info_proc_cmd_all): Likewise. (linux_target_install_ops): Install linux_nat_info_proc. (_initialize_linux_nat): No longer install "info proc" command and subcommands. testsuite/ChangeLog: * gdb.base/info-proc.exp: Also run on remote targets. Main "info proc" command is now always present; whether target supports actual info proc operation is detected when attempting to issue the command.
2012-01-192012-01-19 Pedro Alves <palves@redhat.com>Pedro Alves1-2/+2
* linux-nat.c (linux_nat_close): Call linux_nat_is_async_p and linux_nat_async directly instead of going through the target vector. * target.c (unpush_target): Close target after unpushing it, not before.
2012-01-04Copyright year update in most files of the GDB Project.Joel Brobecker1-2/+1
gdb/ChangeLog: Copyright year update in most files of the GDB Project.
2011-12-202011-12-20 Pedro Alves <alves.ped@gmail.com>Pedro Alves1-1/+9
Jan Kratochvil <jan.kratochvil@redhat.com> * linux-nat.c (add_lwp): Don't call linux_nat_new_thread on the first LWP. * amd64-linux-nat.c (update_debug_registers_callback): Instantiate `lwp->arch_private' if NULL. (amd64_linux_prepare_to_resume): Do nothing if `lwp->arch_private' is NULL. * i386-linux-nat.c (update_debug_registers_callback): Instantiate `lwp->arch_private' if NULL. (i386_linux_prepare_to_resume): Do nothing if `lwp->arch_private' is NULL.
2011-12-14gdb/Pedro Alves1-6/+61
2011-12-14 Pedro Alves <pedro@codesourcery.com> PR threads/10729 * linux-nat.c (linux_nat_new_thread): Change parameter to an lwp pointer. (linux_nat_prepare_to_resume): New global. (lwp_free): New. (purge_lwp_list): Use it. (add_lwp): Call linux_nat_new_thread even on the first LWP. Adjust to interface change. (delete_lwp): Call lwp_free instead of xfree. (detach_callback, linux_nat_detach, resume_lwp, linux_nat_resume) (linux_handle_syscall_trap, linux_handle_extended_wait) (linux_nat_filter_event, resume_stopped_resumed_lwps): Call linux_nat_prepare_to_resume before resuming. (linux_stop_lwp): New. (linux_nat_set_new_thread): Adjust. (linux_nat_set_prepare_to_resume): New. * linux-nat.h (struct arch_lwp_info): Forward declare. (struct lwp_info) <arch_private>: New field. (linux_stop_lwp): Declare. (linux_nat_set_new_thread): Adjust. (linux_nat_set_prepare_to_resume): New. * i386-nat.c (DR_NADDR, DR_STATUS, DR_CONTROL) (struct i386_debug_reg_state): Move to i386-nat.h. (dr_mirror): Comment. (i386_debug_reg_state): New. (i386_update_inferior_debug_regs): Simplify. (i386_stopped_data_address): Use the debug register state from the inferior, not from the local cache. * i386-nat.h (struct i386_dr_low_type): Delete reset_addr and unset_status fields. New get_addr and get_control fields. (DR_FIRSTADDR, DR_LASTADDR, DR_CONTROL): Moved from i386-nat.c. (DR_NADDR, DR_STATUS): New. (struct i386_debug_reg_state): Moved from i386-nat.c. * amd64-linux-nat.c (struct arch_lwp_info): New. (amd64_linux_dr): Delete global. (amd64_linux_dr_get_addr): New. (amd64_linux_dr_get_control): New. (amd64_linux_dr_unset_status): Delete. (amd64_linux_dr_set_addr): Reimplement. (amd64_linux_dr_reset_addr): Delete. (update_debug_registers_callback): New. (amd64_linux_dr_set_control): Reimplement. (amd64_linux_dr_set_addr): Reimplement. (amd64_linux_prepare_to_resume): New. (amd64_linux_new_thread): Change parameter to an lwp pointer. Reimplement. (_initialize_amd64_linux_nat): No longer install i386_dr_low.reset_addr and i386_dr_low.unset_status. Install amd64_linux_dr_get_control as i386_dr_low.get_control. Install amd64_linux_dr_get_addr as i386_dr_low.get_addr. Install amd64_linux_prepare_to_resume. * i386-linux-nat.c (DR_FIRSTADDR, DR_LASTADDR, DR_STATUS) (DR_CONTROL): Delete. (struct arch_lwp_info): New. (i386_linux_dr): Delete global. (i386_linux_dr_set_control): Reimplement. (i386_linux_dr_get_addr): New. (i386_linux_dr_set_addr): Reimplement. (i386_linux_dr_get_control): New. (update_debug_registers_callback): New. (i386_linux_dr_unset_status): Delete. (i386_linux_dr_set_addr): Reimplement. (i386_linux_prepare_to_resume): New. (i386_linux_new_thread): Change parameter to an lwp pointer. Reimplement. (_initialize_i386_linux_nat): No longer install i386_dr_low.reset_addr and i386_dr_low.unset_status. Install i386_linux_dr_get_control as i386_dr_low.get_control. Install i386_linux_dr_get_addr as i386_dr_low.get_addr. Install i386_linux_prepare_to_resume. * arm-linux-nat.c (arm_linux_new_thread): Change parameter to an lwp pointer. Adjust. * ia64-linux-nat.c (ia64_linux_new_thread): Likewise. * mips-linux-nat.c (mips_linux_new_thread): Likewise. * ppc-linux-nat.c (ppc_linux_new_thread): Likewise. * s390-nat.c (s390_fix_watch_points): Likewise. * i386-darwin-nat.c (DR_FIRSTADDR, DR_LASTADDR, DR_STATUS) (DR_CONTROL): Delete. (i386_darwin_dr_reset_addr): Delete. (i386_darwin_dr_get_addr): New. (i386_darwin_dr_get_control): New. * go32-nat.c (go32_get_dr7, go32_get_dr): New. (init_go32_ops): No longer install i386_dr_low.reset_addr. Install go32_get_dr7 as i386_dr_low.get_control. Install go32_get_dr as i386_dr_low.get_addr. * i386bsd-nat.c (i386bsd_dr_get): New. (i386bsd_dr_reset_addr): Delete. (i386bsd_dr_get_addr): New. (i386bsd_dr_get_status): Use i386bsd_dr_get. (i386bsd_dr_get_control): New. * i386bsd-nat.h (i386bsd_dr_reset_addr): Delete. (i386bsd_dr_get_addr): New. (i386bsd_dr_get_control): New. * i386fbsd-nat.c (_initialize_i386fbsd_nat): No longer install i386_dr_low.reset_addr and i386_dr_low.unset_status. Install i386bsd_dr_get_control as i386_dr_low.get_control. Install i386bsd_dr_get_addr as i386_dr_low.get_addr. * windows-nat.c (init_windows_ops): No longer install i386_dr_low.reset_addr and i386_dr_low.unset_status. Install cygwin_get_dr7 as i386_dr_low.get_control. Install cygwin_get_dr as i386_dr_low.get_addr. (cygwin_get_dr): New. (cygwin_get_dr7): New. gdb/testsuite/ 2011-12-14 Pedro Alves <pedro@codesourcery.com> PR threads/10729 * gdb.mi/watch-nonstop.c: New file. * gdb.mi/mi-watch-nonstop.exp: New file.
2011-12-052011-12-05 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-5/+9
* linux-nat.c (resume_stopped_resumed_lwps): Call registers_changed.
2011-11-102011-11-10 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-1/+2
gdb/ * linux-nat.c (linux_nat_wait): Don't force waking up the event loop when returning a TARGET_WAITKIND_NO_RESUMED.
2011-11-03gdb/Jan Kratochvil1-5/+5
* linux-nat.c (_initialize_linux_nat): Improve help for `info proc stat', `info proc status', `info proc cwd', `info proc cmdline' and `info proc exe'.
2011-11-02gdb/Jan Kratochvil1-68/+147
* linux-nat.c: Include cli/cli-utils.h. (enum info_proc_what): New. (linux_nat_info_proc_cmd): Rename to ... (linux_nat_info_proc_cmd_1): ... here. Remove variables argv and all. New parameter what. Initialize cmdline_f, cwd_f, exe_f, mappings_f, status_f and stat_f from WHAT. Throw error on extra parameters. (linux_nat_info_proc_cmd, linux_nat_info_proc_cmd_mappings) (linux_nat_info_proc_cmd_stat, linux_nat_info_proc_cmd_status) (linux_nat_info_proc_cmd_cwd, linux_nat_info_proc_cmd_cmdline) (linux_nat_info_proc_cmd_exe, linux_nat_info_proc_cmd_all): New. (_initialize_linux_nat): New variable info_proc_cmdlist. Install `info proc mappings', `info proc stat`, `info proc status', `info proc cwd', `info proc cmdline', `info proc exe' and `info proc all' as real subcommands of `info proc'.
2011-10-282011-10-28 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-121/+150
gdb/ * linux-nat.c (linux_nat_filter_event): Remove `options' parameter, and dead code that used it. If we're handling a PTRACE_EVENT_EXEC event, and the thread group leader is no longer in our lwp list, re-add it. (check_zombie_leaders): New. (linux_nat_wait_1): Remove `options' and `pid' locals. Always wait for children with WNOHANG, and always wait for all children. Don't check for no resumed children upfront. Simplify wait loop. Check for zombie thread group leaders after handling all wait statuses. Return TARGET_WAITKIND_NO_RESUMED if there no unwaited-for children left. * infrun.c (fetch_inferior_event): Handle TARGET_WAITKIND_NO_RESUMED. (handle_inferior_event): Handle TARGET_WAITKIND_NO_RESUMED. (normal_stop): Handle TARGET_WAITKIND_NO_RESUMED. * target.h (enum target_waitkind) <TARGET_WAITKIND_NO_RESUMED>: New. gdb/testsuite/ * gdb.threads/no-unwaited-for-left.c: New. * gdb.threads/no-unwaited-for-left.exp: New. * gdb.threads/non-ldr-exc-1.c: New. * gdb.threads/non-ldr-exc-1.exp: New. * gdb.threads/non-ldr-exc-2.c: New. * gdb.threads/non-ldr-exc-2.exp: New. * gdb.threads/non-ldr-exc-3.c: New. * gdb.threads/non-ldr-exc-3.exp: New. * gdb.threads/non-ldr-exc-4.c: New. * gdb.threads/non-ldr-exc-4.exp: New.
2011-10-242011-10-24 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-0/+4
gdb/ * linux-nat.c (linux_handle_extended_wait): When handling a clone event, in non-stop, if not stopping, make sure the new lwp has last_resume_kind set to resume_continue. Assert that when we're resuming the new lwp, its last_resume_kind is resume_continue.
2011-10-122011-10-12 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-13/+61
gdb/ * linux-nat.c (stop_and_resume_callback): Don't re-resume LWPs if the core wanted them stopped, or if they now have a pending event to report.
2011-10-112011-10-11 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-3/+7
* linux-nat.c (linux_handle_extended_wait): Always dump both the parent and child's pids as soon as we detect a clone event. Adjust another debug message.
2011-10-112011-10-11 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-4/+8
gdb/ * linux-nat.c (linux_lwp_is_zombie): Return early if the LWP is not zombie instead of reading the whole file.
2011-10-11 * linux-thread-db.c (thread_db_new_objfile): Only try to loadDoug Evans1-2/+0
libthread_db when we load libpthread or the main symbol file. (thread_db_inferior_created): New function. (_initialize_thread_db): Attach inferior_created observer. * linux-nat.c (linux_child_post_attach): Remove call to check_for_thread_db. (linux_child_post_startup_inferior): Ditto. * objfiles.h (OBJF_MAINLINE): Define. * symfile.c (symbol_file_add_with_addrs_or_offsets): Pass it to allocate_objfile when appropriate.
2011-10-102011-10-10 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-24/+44
gdb/ * linux-nat.c (linux_handle_extended_wait): Don't resume the new new clone lwp if the core asked it to stop. Don't pass on unexpected signals to the new clone; leave them pending instead.
2011-10-102011-10-10 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-4/+0
gdb/ * linux-nat.c (resume_lwp): Remove redundant debug output.
2011-10-102011-10-10 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-3/+10
gdb/ * linux-nat.c (linux_nat_wait_1): Copy the event lwp's last_resume_kind before clearing it, and use the copy instead to determine whether to report a SIGSTOP as TARGET_SIGNAL_0. Use resume_clear_callback in the non-stop path too.
2011-10-07 * inferior.h (disable_randomization): Declare.Ulrich Weigand1-40/+13
* infrun.c (disable_randomization): New global variable. (show_disable_randomization): New function. (set_disable_randomization): Likewise. (_initialize_infrun): Install set/show disable-randomization commands. * linux-nat.c (disable_randomization): Remove. (show_disable_randomization): Likewise. (set_disable_randomization): Likewise. (_initialize_linux_nat): No longer install set/show disable-randomization commands here. (linux_nat_supports_disable_randomization): New function. (linux_nat_add_target): Install it. * remote.c (PACKET_QDisableRandomization): New enum value. (remote_protocol_packets): Support QDisableRandomization. (_initialize_remote): Likewise. (remote_supports_disable_randomization): New function. (init_remote_ops): Install it. (extended_remote_supports_disable_randomization): New function. (init_extended_remote_ops): Install it. (extended_remote_disable_randomization): New function. (extended_remote_create_inferior_1): Call it. * target.h (struct target_ops): Add to_supports_disable_randomization. (target_supports_disable_randomization): Add prototype. * target.c (target_supports_disable_randomization): New function. (find_default_supports_disable_randomization): Likewise. (init_dummy_target): Install it. doc/ * gdb.texinfo (Starting your Program): "set disable-randomization" is no longer Linux-specific. (Remote Configuration): Document "set remote disable-randomization-packet". (General Query Packets): Document "QDisableRandomization" packet and add it to "qSupported" list. gdbserver/ * configure.ac: Check support for personality routine. * configure: Regenerate. * config.in: Likewise. * linux-low.c: Include <sys/personality.h>. Define ADDR_NO_RANDOMIZE if necessary. (linux_create_inferior): Disable address space randomization when forking inferior, if requested. (linux_supports_disable_randomization): New function. (linux_target_ops): Install it. * server.h (disable_randomization): Declare. * server.c (disable_randomization): New global variable. (handle_general_set): Handle QDisableRandomization. (handle_query): Likewise for qSupported. (main): Support --disable-randomization and --no-disable-randomization command line arguments. * target.h (struct target_ops): Add supports_disable_randomization. (target_supports_disable_randomization): New macro.
2011-09-092011-09-09 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-73/+116
* linux-nat.h (enum resume_kind): New. (struct lwp_info) <last_resume_kind>: New field. (linux_child_follow_fork): Set last_resume_kind to resume_stop on the new lwp. (add_lwp): Set last_resume_kind as resume_continue by default. (lin_lwp_attach_lwp): Set last_resume_kind as resume_stop. (resume_lwp): New, factored out from resume_callback. Also check for pending status in lp->waitstatus. (resume_callback): Reimplement. (resume_clear_callback): Set last_resume_kind as resume_stop. (resume_set_callback): Set last_resume_kind as resume_continue. (linux_nat_resume, linux_handle_extended_wait): Set last_resume_kind. (running_callback): Also check lp->waitstatus for pending events. (select_singlestep_lwp_callback): Check that lp->last_resume_kind is resume_step. (stop_and_resume_callback): Don't re-resume if the core wanted the lwp stopped. Use resume_lwp instead of resume_callback. Avoid using an invalidated pointer. (linux_nat_filter_event): Don't discard SIGSTOPs as delayed SIGSTOPs if the core wanted the LWP to stop. (linux_nat_wait_1) Don't consume a pending SIGSTOP if the core wanted the lwp to stop. If the core wanted the lwp to stop, and the lwp stopped with a SIGSTOP, report a TARGET_SIGNAL_0 instead of TARGET_SIGNAL_STOP. (linux_nat_stop_lwp): Don't synchronously wait for the lwp to stop here. Instead, signal the lwp, and set the last_resume_kind to resume_stop.
2011-09-092011-09-09 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-1/+1
* linux-nat.c (lin_lwp_attach_lwp): Return 1 (ignore) instead of -1 (error), if the lwp exits right after attaching.
2011-09-022011-09-02 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-11/+57
* linux-nat.c (in_pid_list_p): New. (linux_record_stopped_pid): Delete. (lin_lwp_attach_lwp): Check if PTRACE_ATTACH failed because we're already attached to the LWP. Return an indication if so. (linux_nat_filter_event): Adjust. * linux-thread-db.c (attach_thread): Handle lin_lwp_attach_lwp returning an indication to ignore this thread.
2011-08-262011-08-26 Pedro Alves <pedro@codesourcery.com>Pedro Alves1-14/+10
* linux-nat.c (linux_child_follow_fork): Don't set lp->resumed on either the parent or the child forks. Rename a couple locals.