* aix-thread.c (aix_thread_wait): Add options parameter. Use it
[binutils-gdb.git] / gdb / ChangeLog
index 4a8874e29b166fea8b18fd0b62e032d951503537..66640a9a77fdead8d460ce11f5c5f36331344c1e 100644 (file)
@@ -1,3 +1,316 @@
+2009-05-21  Joel Brobecker  <brobecker@adacore.com>
+
+       * aix-thread.c (aix_thread_wait): Add options parameter.  Use it
+       to call the to_wait method in the target_beneath.
+
+2009-05-21  Pedro Alves  <pedro@codesourcery.com>
+
+       * linux-nat.c (linux_nat_terminal_inferior)
+       (linux_nat_terminal_ours): Don't check sync_execution.
+       * remote.c (remote_terminal_inferior, remote_terminal_ours):
+       Don't check sync_execution.  Update comments.
+       * target.c (target_terminal_inferior): New.
+       * target.h (target_terminal_inferior): Delete macro, and declare
+       as function.
+       * event-top.c (async_disable_stdin): Make idempotent.  Don't give
+       the target the terminal here.
+       * inflow.c (terminal_ours_1): Don't return early without setting
+       `terminal_is_ours'.
+
+2009-05-21  Pedro Alves  <pedro@codesourcery.com>
+
+       * target.h (TARGET_WNOHANG): New.
+       * target.c (target_wait): Add `options' argument.  Adjust.
+       (struct target_ops) <to_wait>: Add `options' argument.
+       (target_wait): Add `options' argument.
+       * infrun.c (wait_for_inferior): Pass 0 as options to
+       target_wait (blocking wait).
+       (fetch_inferior_event): Pass TARGET_WNOHANG as options to
+       target_wait.
+       * fork-child.c (startup_inferior): Pass 0 as options to
+       target_wait (blocking wait).
+       * linux-nat.c (linux_nat_create_inferior): Remove async masking.
+       (linux_nat_wait_1): Add `target_options' argument.  Use it instead
+       of checking on target_can_async_p.
+       (linux_nat_wait): Add `target_options' argument.  Adjust.
+       * remote.c (remote_wait_ns): Add `options' argument.  Adjust to
+       check on TARGET_WNOWAIT instead of checking on remote_is_async_p.
+       (remote_wait_as): Add `options' argument.  Adjust to check on
+       TARGET_WNOWAIT instead of checking on remote_is_async_p.  If doing
+       a blocking wait, keep waiting until an interesting event comes
+       out.
+       (remote_wait): Add `options' argument.  Don't loop here if the
+       target is in async mode, and a blocking wait has been requested.
+
+       * top.c (deprecated_target_wait_hook): Add `options' argument.
+       * linux-thread-db.c (thread_db_wait): Add `options' argument, and
+       pass it down to the layer beneath.
+       * inf-ptrace.c (inf_ptrace_wait): Add `options' argument.
+       * record.c (record_beneath_to_wait): Add `options' argument.
+       (record_wait): Add `options' argument, and pass it down to the
+       layer beneath.
+       * bsd-uthread.c (bsd_uthread_wait): Add `options' argument.
+       * darwin-nat.c (darwin_wait): Likewise.
+       * defs.h (deprecated_target_wait_hook): Likewise.
+       * gnu-nat.c (gnu_wait): Add `options' argument.
+       * go32-nat.c (go32_wait): Likewise.
+       * hpux-thread.c (hpux_thread_wait): Add `options' argument, and
+       pass it down to the layer beneath.
+       * inf-ttrace.c (inf_ttrace_wait): Add `options' argument.
+       * monitor.c (monitor_wait): Likewise.
+       * nto-procfs.c (procfs_wait): Likewise.
+       * remote-mips.c (mips_wait): Add `options' argument.
+       * remote-sim.c (gdbsim_wait): Likewise.
+       * rs6000-nat.c (rs6000_wait): Add `options' argument.
+       * sol-thread.c (sol_thread_wait): Add `options' argument, and pass
+       it down to the layer beneath.
+       * spu-linux-nat.c (spu_child_wait): Add `options' argument.
+       * windows-nat.c (windows_wait): Likewise.
+       * tui/tui-hooks.c (tui_target_wait_hook): Likewise.  Adjust.
+
+2009-05-21  Pedro Alves  <pedro@codesourcery.com>
+
+       * mi/mi-interp.c (mi_on_resume): Account for whole process
+       resumes.
+
+2009-05-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * m2-exp.y (MAX_FUNC): Fix trailing UNOP_MAX.
+
+2009-05-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * dwarf2read.c (set_cu_language): Recognize also DW_LANG_C99.
+
+2009-05-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Fix parsing DW_AT_const_value using DW_FORM_string.
+       * dwarf2read.c (dwarf2_const_value <DW_FORM_string>): New.
+
+2009-05-20  Joel Brobecker  <brobecker@adacore.com>
+
+       * aix-thread.c (giter_count): Do not count the main thread.
+       (giter_accum): Do not include the main thread.
+
+2009-05-19  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Remove the PROT parameter from openp.
+       * source.c (openp): Remove the parameter PROT.  Assertion check MODE.
+       defs.h (openp): Update the prototype.
+       Update all the openp callers.
+
+2009-05-19  Pedro Alves  <pedro@codesourcery.com>
+
+       * inflow.c (kill_command): Moved to infcmd.c.
+       (_initialize_inflow): Don't add the "kill" command or clear
+       inferior_ptid here.
+       * infcmd.c (kill_command): Moved here from inflow.c.
+       (_initialize_infcmd): Add the "kill" command here.
+
+2009-05-19  Pedro Alves  <pedro@codesourcery.com>
+
+       * fork-child.c: Don't include frame.h.  Include terminal.h.
+       (fork_inferior): Call new_tty_postfork after forking adn adding
+       the child to the inferior list.
+       * inferior.h (new_tty_prefork, gdb_has_a_terminal): Don't declare
+       here.
+       * inflow.c (struct terminal_info): Remove const qualifier from
+       `run_terminal' field.
+       (inferior_thisrun_terminal): Tweak comment.
+       (inflow_inferior_exit): Release the `run_terminal' field.
+       (copy_terminal_info): New function.
+       (new_tty_postfork): New function.
+       * terminal.h (new_tty_prefork, new_tty, new_tty_postfork,
+       (copy_terminal_info, gdb_has_a_terminal, gdb_setpgid): Declare.
+       * inf-ptrace.c: Include terminal.h.
+       (inf_ptrace_follow_fork): Copy the parent's terminal info to the
+       child.
+       * linux-nat.c: Include terminal.h.
+       (linux_child_follow_fork): Copy the parent's terminal info to the
+       child.
+       * inf-ttrace.c: Include terminal.h.
+       (inf_ttrace_follow_fork): Copy the parent's terminal info to the
+       child.
+
+2009-05-19  Pedro Alves  <pedro@codesourcery.com>
+
+       * breakpoint.c (insert_breakpoints, breakpoint_init_inferior)
+       (update_global_location_list): Use gdbarch_has_global_breakpoints
+       instead of gdbarch_has_global_solist and
+       target_supports_multi_process.
+       * dicos-tdep.c (dicos_init_abi): Set
+       gdbarch_has_global_breakpoints.
+       * gdbarch.sh (has_global_solist): Update comment.
+       (has_global_breakpoints): New.
+       * remote.c (remote_start_remote): Use
+       gdbarch_has_global_breakpoints instead of
+       gdbarch_has_global_solist.
+       * target.c (target_detach): Use gdbarch_has_global_breakpoints
+       instead of gdbarch_has_global_solist.
+       * infcmd.c (attach_command): Use gdbarch_has_global_solist instead
+       of target_supports_multi_process.
+
+2009-05-18  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+       * objc-lang.c (find_methods): Plug a small memory leak.
+
+2009-05-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * solib-svr4.c: Include observer.h.
+       (debug_base, debug_loader_offset_p, debug_loader_offset)
+       (debug_loader_name, main_lm_addr): Move these globals...
+       (struct svr4_info): ... into this new structure.
+       (svr4_info_p): New typedef.
+       (svr4_info): New global.
+       (get_svr4_info, remove_svr4_info, solib_svr4_inferior_exit): New
+       functions.
+       (locate_base, solib_svr4_r_map, solib_svr4_r_brk)
+       (solib_svr4_r_ldsomap): Add svr4_info argument.  Adjust to
+       per-inferior svr4.
+       (open_symbol_file_object): Adjust to per-inferior svr4.
+       (svr4_default_sos, svr4_current_sos, svr4_fetch_objfile_link_map):
+       Ditto.
+       (enable_break): Add svr4_info argument.  Adjust to per-inferior
+       svr4.
+       (enable_break, svr4_solib_create_inferior_hook, svr4_clear_solib):
+       Adjust to per-inferior svr4.
+       (_initialize_svr4_solib): Install the solib_svr4_inferior_exit
+       observer.
+
+2009-05-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * linux-nat.h (linux_proc_get_tgid): Declare.
+       * linux-nat.c (linux_proc_get_tgid): New.
+       * linux-thread-db.c (struct thread_db_info): New field
+       `need_stale_parent_threads_check'.
+       (add_thread_db_info): Set it.
+       (find_new_threads_callback): Ignore stale fork parent threads.
+       (thread_db_resume): New.
+       (init_thread_db_ops): Install thread_db_resume.
+
+2009-05-18  Pedro Alves  <pedro@codesourcery.com>
+
+       * fork-child.c (fork_inferior): Only reset the thread list if this
+       is the first inferior.
+       (startup_inferior): If the target support multi-process, tell it
+       to resume only the new process.
+       * linux-nat.c (num_lwps): Delete global.
+       (purge_lwp_list): New function.
+       (num_lwps): New function.
+       (add_lwp, delete_lwp): Adjust.
+       (ptid_match): New.
+       (iterate_over_lwps): Add filter argument.  Handle it.
+       (linux_nat_attach): Remove FIXME note.
+       (linux_nat_detach): Adjust to iterate over threads of the inferior
+       we're detaching from.  Adjust to num_lwps being a function.  Don't
+       assume the head of the lwp list is the main thread of the process
+       we're detaching from.  Don't destroy the LWP list.
+       (resume_callback): Add debug output.
+       (linux_nat_resume): Handle resuming a single inferior.  Allow a
+       wildcard resume in non-stop mode.
+       (linux_handle_extended_wait): Don't assume inferior_ptid is the
+       correct inferior of the parent LWP.
+       (status_callback): Also check lp->waitstatus.
+       (select_event_lwp): Add new filter parameter.  Handle it.
+       (linux_nat_filter_event): Adjust to num_lwps being a function.
+       (linux_nat_wait_1): When adding the first lwp of the inferior, use
+       an is_lwp check instead of checking for the number of lwps.
+       (linux_nat_wait_1): Handle waiting for a specific tgid.  Handle
+       pending process exit statuses.
+       (linux_nat_mourn_inferior): Don't destroy all the LWP info.
+       Instead delete LWPs of the inferior that we're mourning.  Don't
+       unregister from the event loop here.
+       (linux_nat_pid_to_str): Use `num_lwps'.
+       (linux_nat_make_corefile_notes): Adjust to walk over lwps of a
+       single inferior.
+       (linux_nat_is_async_p): Check if async was masked out.
+       (linux_multi_process): New global.
+       (linux_nat_supports_multi_process): New.
+       (linux_nat_stop_lwp): Remove LWP filtering.  It is done by the
+       caller.
+       (linux_nat_stop): Adjust to make iterate_over_lwps itself do the
+       LWP filtering.
+       (linux_nat_close): New.
+       (linux_nat_add_target): Register linux_nat_close and
+       linux_nat_supports_multi_process.
+       * linux-nat.h (iterate_over_lwps): Add filter argument.
+       * linux-thread-db.c (thread_db_handle): Delete.
+       (proc_handle, thread_agent, td_init_p, td_ta_new_p)
+       (td_ta_map_id2thr_p, td_ta_map_lwp2thr_p, td_ta_thr_iter_p)
+       (td_ta_event_addr_p, td_ta_set_event_p, td_ta_event_getmsg_p)
+       (td_thr_validate_p, td_thr_get_info_p, td_thr_event_enable_p)
+       (td_thr_tls_get_addr_p, td_create_bp_addr, td_death_bp_addr): No
+       longer globals, moved to...
+       (struct thread_db_info): ... this new structure.
+       (thread_db_list): New.
+       (add_thread_db_info, get_thread_db_info, delete_thread_db_info):
+       New.
+       (have_threads_callback): Filter out threads of all inferiors but
+       the one specified by the ARGS argument.
+       (have_threads): Add ptid argument specifying the inferior we're
+       interested in.  Handle it.
+       (struct thread_get_info_inout): New.
+       (thread_get_info_callback, thread_from_lwp): Adjust to use it.
+       (thread_db_attach_lwp): Check that inferior of the passed in
+       thread is using thread-db.  Adjust.
+       (enable_thread_event): Remove thread_agent parameter.  Instead,
+       get it from the per-inferior thread-db info.
+       (dladdr_to_soname): Move higher up.
+       (enable_thread_event_reporting): Adjust to use per-inferior
+       thread-db info.
+       (try_thread_db_load_1): Replace `handle' parameter by a
+       thread_db_info parameter.  Adjust to use per-inferior thread-db
+       info.
+       (try_thread_db_load): Adjust to use per-inferior thread-db info.
+       (thread_db_load, disable_thread_event_reporting): Ditto.
+       (check_for_thread_db): Remove conditional reporting of which
+       libthread_db is in use.
+       (thread_db_new_objfile): Add comment about inferior_ptid.
+       (attach_thread): Adjust to use per-inferior thread-db info.
+       (thread_db_detach): Adjust to use per-inferior thread-db info.
+       Remove thread event breakpoints of the current inferior.  Only
+       unpush the thread-db target if there are no more processes using
+       it.
+       (check_event): Adjust to use per-inferior thread-db info.
+       (thread_db_wait): Adjust to use per-inferior thread-db info.  Only
+       unpush the thread-db target if there are no more processes using
+       it.
+       (thread_db_mourn_inferior): Adjust to use per-inferior thread-db
+       info.  Mark breakpoints of the current inferior out before
+       deleting them.  Only unpush the thread-db target if there are no
+       more processes using it.
+       (find_new_threads_callback): Adjust to use per-inferior thread_db
+       info.
+       (thread_db_find_new_threads_1): Add new ptid argument.  Adjust to
+       use per-inferior thread-db info.
+       (thread_db_find_new_threads): Adjust to use per-inferior thread-db
+       info.
+       (thread_db_get_thread_local_address): Adjust.
+       (thread_db_get_ada_task_ptid): Adjust.
+       * inf-ptrace.c (inf_ptrace_mourn_inferior): Only unpush the target
+       if there no more processes left to debug.
+       * thread.c (set_running, set_executing): Handle resuming all
+       threads of a single inferior.
+       * mi/mi-interp.c (mi_output_running_pid): New.
+       (mi_inferior_count): New.
+       (mi_on_resume): For backwards compatibility, if resuming all
+       threads of an inferior, and there is only one inferior, output
+       "all".
+
+2009-05-18  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * ada-lang.c (ada_find_any_type): Move check for primitive types ...
+       (to_fixed_range_type): ... to here.
+
+2009-05-18  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * ada-lang.c (desc_data_type): Remove, replace by ...
+       (desc_data_target_type): ... this.
+       (thin_data_pntr): Use desc_data_target_type instead of desc_data_type.
+       (ada_is_array_descriptor_type): Likewise.
+       (ada_type_of_array): Likewise.
+       (ada_coerce_to_simple_array_type): Likewise.
+       (ada_array_element_type): Likewise.
+
 2009-05-18  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * ada-valprint.c (ada_val_print_1): Use val_print_string to print
 
 2009-01-14  Kai Tietz  <kai.tietz@onevision.com>
 
-       * mingw-ser.c (console_select_thread): Add return to make
+       * ser-mingw.c (console_select_thread): Add return to make
        compiler happy.
        (pipe_select_thread): Likewise.
        (file_select_thread): Likewise.