2008-07-12 Pedro Alves <pedro@codesourcery.com>
[deliverable/binutils-gdb.git] / gdb / ChangeLog
index 19cb5b9040449995fac010380ec99b7849169c01..1d1f839dfac90457ae82ef7f3c322396a7b22570 100644 (file)
@@ -1,3 +1,323 @@
+2008-07-12  Pedro Alves  <pedro@codesourcery.com>
+
+       * infrun.c (struct thread_stepping_state): Delete sal member.
+       (init_thread_stepping_state): Add local sal.  Use it instead of
+       tss->sal.
+       (handle_inferior_event): New local stop_pc_sal.  Use it instead of
+       tss->sal.
+       (step_into_function): Add local stop_func_sal.  Use it instead of
+       tss->sal.
+
+2008-07-12  Vladimir Prus  <vladimir@codesourcery.com>
+
+       Implement -exec-continue/-exec-interrupt --all.
+        * infcmd.c (continue_1): New, extracted from
+        (continue_command): ...here.
+        (interrupt_target_1): New, extracted from
+        (interrupt_target_command): ...here.
+        * inferior.h (continue_1, interrupt_target_1): New.
+        * mi/mi-main.c (mi_cmd_exec_continue)
+        (mi_cmd_exec_interrupt): Handle --all.
+
+2008-07-12  Vladimir Prus  <vladimir@codesourcery.com>
+
+       Implement --thread and --frame.
+       * gdbthread.h (find_thread_id): Declare.
+        * thread.c (find_thread_id): Make non-static.
+        * mi/mi-main.c (mi_cmd_execute): Switch to the right
+        thread and frame, if necessary.
+        * mi/mi-parse.c (mi_parse): Handle --thread and --frame.
+        * mi/mi-parse.h (strcut mi_parse): New fields thread and frame.
+
+2008-07-12  Vladimir Prus  <vladimir@codesourcery.com>
+
+       * infrun.c (resume): Discard cleanups on early exit path.
+
+2008-07-12  Vladimir Prus  <vladimir@codesourcery.com>
+
+        * infrun.c (normal_stop): For MI, report which threads
+       were stopped.
+
+2008-07-12  Vladimir Prus  <vladimir@codesourcery.com>
+
+       Report thread state in -thread-info output.
+        * thread.c (print_thread_info): Add new field "state".
+
+2008-07-11  Pedro Alves  <pedro@codesourcery.com>
+
+       * infrun.c (handle_inferior_event): Also ignore a
+       TARGET_SIGNAL_TRAP on a STOP_QUIETLY_NO_SIGSTOP.
+
+2008-07-11  Tom Tromey  <tromey@redhat.com>
+
+       * completer.c (complete_line_internal): New function, from
+       complete_line.  Add 'for_help' parameter.
+       (complete_line): Use it.
+       (command_completer): Move later.  Rewrite.
+
+2008-07-11  Pedro Alves  <pedro@codesourcery.com>
+
+       * thread.c (thread_apply_command): Move making the cleanup out of
+       the loop.
+
+2008-07-11  Pedro Alves  <pedro@codesourcery.com>
+
+       Exited threads.
+
+       * thread.c (enum thread_state): New.
+       (thread_state main_thread_running): Delete, in favor of...
+       (thread_state main_thread_state): ... this.  Update throughout.
+       (clear_thread_inferior_resources): New, split from free_thread.
+       (free_thread): Call clear_thread_inferior_resources.
+       (init_thread_list): Set main thread to stopped state.
+       (add_thread_silent): Take care of PTID reuses.
+       (delete_thread): If deleting inferior_ptid or a thread with
+       refcount > 0, mark it as exited, but still keep it in the list.
+       Only notify of thread exits, if we haven't done so yet.
+       (iterate_over_threads): Make it safe to delete threads while
+       iterating over them.
+       (do_captured_list_thread_ids): Don't account for exited threads.
+       (thread_alive): Check for the THREAD_EXITED state, and don't set
+       ptid to -1 on exited threads.
+       (set_running): Update to account for extra possible states.
+       (is_thread_state): New.
+       (is_stopped, is_exited): New.
+       (is_running): Implement in terms of is_thread_state.
+       (any_running): Update.
+       (print_thread_info): Update.  Account for exited threads.  Don't
+       warn about missed frame restoring here, its done in the cleanup.
+       (switch_to_thread): Don't read from a thread that has gone.
+       (restore_current_thread): In non-stop mode, do a full context
+       switch.
+       (restore_selected_frame): Add a frame_level argument.  Rewrite.
+       (struct current_thread_cleanup): Add selected_frame_level and
+       was_stopped members.
+       (do_restore_current_thread_cleanup): Check if thread was stopped
+       and still is, and if the target has registers, stack and memory
+       before restoring the selected frame.  Don't delete the cleanup
+       argument here.
+       (restore_current_thread_cleanup_dtor): New.
+       (make_cleanup_restore_current_thread): Remove all arguments.
+       Rewrite.
+       (thread_apply_all_command): Update.  Prune threads.
+       (thread_apply_command): Update.
+       (thread_command): Account for currently selected exited thread.
+       (do_captured_thread_select): Check for a running thread.  Prune
+       threads.
+       (_initialize_thread): Make "info threads", "thread", "thread
+       apply", and "thread apply all" appliable without a selected thread.
+       * gdbthread.h (struct thread_info): Replace running_ by state_.
+       Add refcount.
+       (is_exited, is_stopped): Declare.
+       (make_cleanup_restore_current_thread): Remove all arguments.
+       * infrun.c: Include "event-top.h".
+       (fetch_inferior_event): In non-stop mode, restore selected thread
+       and frame after handling the event and running breakpoint
+       commands.  Display GDB prompt if needed.
+       (normal_stop): In non-stop mode, don't print thread switching
+       notice.
+       * cli/cli-decode.c (set_cmd_no_selected_thread_ok)
+       (get_cmd_no_selected_thread_ok): New.
+       * cli/cli-decode.h (CMD_NO_SELECTED_THREAD_OK): New.
+       (set_cmd_no_selected_thread_ok, get_cmd_no_selected_thread_ok):
+       Declare.
+       * cli/cli-cmds.c: Set "pwd", "help", "info", "show" as
+       no-selected-thread ok.
+       * top.c (execute_command): Check for non no-selected-thread-ok
+       commands.
+       * linux-nat.c (struct saved_ptids, threads_to_delete)
+       (record_dead_thread, prune_lwps): Delete.
+       (exit_lwp): Unconditionally delete thread.
+       (linux_nat_resume): Remove prune_lwps call.
+       * infcmd.c (proceed_thread_callback): Check if !is_stopped instead
+       of is_running.  Adjust to make_cleanup_restore_current_thread
+       interface change.
+       * mi/mi-main.c (mi_cmd_execute): Only allow a few commands if the
+       selected thread has exited.
+       * inf-loop.c (inferior_event_handler): Don't display the prompt
+       here.
+       * varobj.c (c_value_of_root): Update.
+       * defs.h (make_cleanup_dtor): Declare.
+       * utils.c (make_cleanup_dtor): New.
+
+       * Makefile.in (infrun.o): Depend on $(event_top_h).
+
+2008-07-11  Pedro Alves  <pedro@codesourcery.com>
+
+       Add "continue -a" and "interrupt -a" options for non-stop mode.
+
+       * infcmd.c (proceed_thread_callback, do_context_switch_to): New.
+       (continue_command): Add "-a" option.
+       (interrupt_target_command): Add "-a" option.
+       (_initialize_infcmd): Add extend help of continue and interrupt
+       command to mention the new "-a" option.  Mark "continue" async ok.
+
+2008-07-10  Doug Evans  <dje@google.com>
+
+       Add "set print symbol-loading on|off".
+       * NEWS: Document new option.
+       * symfile.h (print_symbol_loading): Declare.
+       * symfile.c (print_symbol_loading): New global.
+       (symbol_file_add_with_addrs_or_offsets): Only print "Reading symbols
+       from ..." if print_symbol_loading.
+       (_initialize_symfile): Add set/show print symbol-loading.
+       * solib.c (solib_read_symbols): Only print "Loaded symbols for ..."
+       if print_symbol_loading.
+
+2008-07-10  Pedro Alves  <pedro@codesourcery.com>
+
+       Non-stop linux native.
+
+       * linux-nat.c (linux_test_for_tracefork): Block events while we're
+       here.
+       (get_pending_status): Implement non-stop mode.
+       (linux_nat_detach): Stop threads before detaching.
+       (linux_nat_resume): In non-stop mode, always resume only a single
+       PTID.
+       (linux_handle_extended_wait): On a clone event, in non-stop mode,
+       add new lwp to GDB's thread table, and mark as running, executing
+       and stopped appropriately.
+       (linux_nat_filter_event): Don't assume there are other running
+       threads when a thread exits.
+       (linux_nat_wait): Mark the main thread as running and executing.
+       In non-stop mode, don't stop all lwps.
+       (linux_nat_kill): Stop lwps before killing them.
+       (linux_nat_thread_alive): Use signal 0 to detect if a thread is
+       alive.
+       (send_sigint_callback): New.
+       (linux_nat_stop): New.
+       (linux_nat_add_target): Set to_stop to linux_nat_stop.
+
+       * linux-nat.h (thread_db_attach_lwp): Declare.
+
+       * linux-thread-db.c (thread_get_info_callback): Check for new
+       threads if we have none.
+       (thread_from_lwp, enable_thread_event): Set proc_handle.pid to the
+       stopped lwp.  Check for new threads if we have none.
+       (thread_db_attach_lwp): New.
+       (thread_db_init): Set proc_handle.pid to inferior_ptid.
+       (check_event): Set proc_handle.pid to the stopped lwp.
+       (thread_db_find_new_threads): Set proc_handle.pid to any stopped
+       lwp available, bail out if there is none.
+
+       * linux-fork.c (linux_fork_killall): Use SIGKILL instead of
+       PTRACE_KILL.
+
+2008-07-10  Kevin Buettner  <kevinb@redhat.com>
+
+       * rs6000-tdep.c (ppc_displaced_step_fixup): Change type of
+       `current_pc' from CORE_ADDR to ULONGEST.
+
+       * remote-sim.c (gdbsim_cntrl_c): Pass remote_sim_ptid to
+       gdbsim_stop().
+
+2008-07-10  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * NEWS (New commands): Mention "set disable-randomization".
+       * configure.ac: Add check for HAVE_PERSONALITY and
+       HAVE_DECL_ADDR_NO_RANDOMIZE.
+       * configure, config.in: Regenerate.
+       * linux-nat.c [HAVE_PERSONALITY]: New include <sys/personality.h>.
+       [HAVE_PERSONALITY] [!HAVE_DECL_ADDR_NO_RANDOMIZE]: Set
+       ADDR_NO_RANDOMIZE.
+       (disable_randomization, show_disable_randomization)
+       (set_disable_randomization): New.
+       (linux_nat_create_inferior) [HAVE_PERSONALITY]: New variables
+       PERSONALITY_ORIG and PERSONALITY_SET.  Disable randomization upon the
+       variable DISABLE_RANDOMIZATION.
+       (_initialize_linux_nat): Call ADD_SETSHOW_BOOLEAN_CMD for the variable
+       DISABLE_RANDOMIZATION.
+
+2008-07-09  Pedro Alves  <pedro@codesourcery.com>
+
+       Adjust all targets to new target_stop interface.
+
+       * gnu-nat.c (gnu_stop): Add ptid argument.
+       * go32-nat.c (go32_stop): Add ptid argument.
+       (go32_create_inferior): Pass inferior_ptid to go32_stop.
+       * hpux-thread.c (hpux_thread_stop): Add ptid argument.
+       * monitor.c (monitor_stop): Add ptid argument.
+       (monitor_open): Pass inferior_ptid to monitor_stop.
+       (monitor_interrupt): Pass inferior_ptid to target_stop.
+       (monitor_stop): Add ptid argument.
+       * nto-procfs.c (nto_interrupt): Pass inferior_ptid to target_stop.
+       (procfs_create_inferior): Add ptid argument.
+       * procfs.c (procfs_stop): Add ptid argument.
+       * remote-m32r-sdi.c (m32r_stop): Add ptid argument.
+       * remote-sim.c (gdbsim_stop): Add ptid argument.
+       * sol-thread.c (sol_thread_stop): Add ptid argument.
+       * win32-nat.c (win32_stop): Add ptid argument.
+
+2008-07-09  Pedro Alves  <pedro@codesourcery.com>
+
+       Non-stop inferior control.
+
+       * infrun.c (resume): In non-stop mode, always resume just one
+       thread.
+       (proceed): Don't call prepare_to_proceed in non-stop mode.
+       (fetch_inferior_event): In non-stop mode, switch context before
+       handling the event.
+       (error_is_running, ensure_not_running): New.
+       (handle_inferior_event): In non-stop mode: Mark only the event
+       thread as stopped.  Require that the target module manages adding
+       threads to the thread list.  Assert that there isn't a
+       deferred_step_ptid set.  Don't switch to infwait_thread_hop_state.
+       (normal_stop): Only mark not-running if inferior hasn't exited.
+       In non-stop mode, only mark the event thread.
+
+       * thread.c:Include "cli/cli-decode.h".
+       (print_thread_info): Don't read from a running thread.
+       Output "(running)" if thread is running.
+       (switch_to_thread): Don't read stop_pc if thread is executing.
+       (do_restore_current_thread_cleanup): Don't write to a running
+       thread.
+       (thread_apply_all_command): Don't read from a running thread.  In
+       non-stop mode, do a full context-switch instead of just switching
+       threads.
+       (thread_apply_command): In non-stop mode, do a full context-switch
+       instead of just switching threads.
+       (do_captured_thread_select): Likewise.  Inform user if selected
+       thread is running.
+       (_initialize_thread): Mark "info threads" and "thread" and
+       async_ok.
+
+       * inf-loop.c (inferior_event_handler): In non-stop mode, don't
+       unregister the target from the event loop.
+
+       * infcmd.c (continue_command, step_1, jump_command)
+       (signal_command): Ensure the selected thread isn't running.
+       (interrupt_target_command): In non-stop mode, interrupt only the
+       selected thread.
+
+       * inferior.h (error_is_running, ensure_not_running): Declare.
+
+       * target.h (struct target_ops): Add ptid argument to the to_stop
+       member.
+       (target_stop): Add ptid_t argument.
+
+       * target.c (update_current_target): Add ptid argument to to_stop's
+       type.
+       (debug_to_stop): Add ptid_t argument.
+       (debug_to_rcmd): Set to_stop_ptid.
+
+       * remote.c (remote_stop): Add ptid_t argument.
+       (async_remote_interrupt): Add inferior_ptid to target_stop.
+       * inf-ptrace.c (inf_ptrace_stop): Add ptid argument.
+
+       * Makefile.in (thread.o): Depend on $(cli_decode_h).
+
+2008-07-09  Pedro Alves  <pedro@codesourcery.com>
+
+       Don't rely on ecs->wait_for_more.
+
+       * infrun.c (proceed): Clear the stepping state, set
+       previous_inferior_ptid and clear infwait state.
+       (wait_for_inferior): Don't clear the stepping state, set
+       previous_inferior_ptid, or clear the infwait state here.
+       (fetch_inferior_event): Don't clear the stepping state, set
+       previous_inferior_ptid, or clear the infwait state here.  Don't
+       condition on wait_for_more.
+
 2008-07-09  Pedro Alves  <pedro@codesourcery.com>
 
        Refactor infrun a bit.
This page took 0.02641 seconds and 4 git commands to generate.