aboutsummaryrefslogtreecommitdiff
path: root/gdb
AgeCommit message (Collapse)AuthorFilesLines
2008-07-11 * infrun.c (handle_inferior_event): Also ignore aPedro Alves2-5/+17
TARGET_SIGNAL_TRAP on a STOP_QUIETLY_NO_SIGSTOP.
2008-07-11gdbTom Tromey4-12/+57
* completer.c (complete_line_internal): New function, from complete_line. Add 'for_help' parameter. (complete_line): Use it. (command_completer): Move later. Rewrite. gdb/testsuite * gdb.base/completion.exp: Add 'help' completion test.
2008-07-11 * thread.c (thread_apply_command): Move making the cleanup out ofPedro Alves2-2/+7
the loop.
2008-07-11 Exited threads.Pedro Alves16-226/+536
* 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 Add "continue -a" and "interrupt -a" options for non-stop mode.Pedro Alves2-15/+107
* 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-11*** empty log message ***gdbadmin1-1/+1
2008-07-10 Add "set print symbol-loading on|off".Doug Evans7-7/+69
* 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. * doc/gdb.texinfo: Document "set print symbol-loading on|off".
2008-07-10 Non-stop linux native.Pedro Alves5-48/+322
* 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 * gdb.base/randomize.exp: Remove dependency on tcl-8.4+.Jan Kratochvil2-2/+6
2008-07-10 * rs6000-tdep.c (ppc_displaced_step_fixup): Change type ofKevin Buettner2-1/+4
`current_pc' from CORE_ADDR to ULONGEST.
2008-07-10 * remote-sim.c (gdbsim_cntrl_c): Pass remote_sim_ptid toKevin Buettner2-1/+6
gdbsim_stop().
2008-07-10fix typo in "set debug timetstamp"Doug Evans1-1/+1
2008-07-10gdb/Jan Kratochvil11-0/+488
* 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. gdb/doc/ * gdb.texinfo (Starting): Document "set disable-randomization". gdb/testsuite/ * gdb.base/randomize.exp, gdb.base/randomize.c: New files.
2008-07-10*** empty log message ***gdbadmin1-1/+1
2008-07-09 Adjust all targets to new target_stop interface.Pedro Alves12-23/+43
* 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 Non-stop inferior control.Pedro Alves11-74/+260
* 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 Don't rely on ecs->wait_for_more.Pedro Alves2-27/+28
* 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 Refactor infrun a bit.Pedro Alves2-122/+191
* infrun.c (currently_stepping): Take a struct thread_stepping_state instead of an execution_control_state. (struct thread_stepping_state): New, split from execution_control_state. (gtss, tss): New globals. (proceed): Clear the stepping state, set previous_inferior_ptid and clear infwait state. (init_wait_for_inferior): Clear the stepping state, previous_inferior_ptid and infwait state. (waiton_ptid, infwait_state): New, split from execution_control_state. (struct execution_control_state): Members that persist through events moved out to either struct thred_stepping_state or made global. Deleted unneeded wp, saved_inferior_ptid, tmpstatus. (wait_for_inferior, fetch_inferior_event): Use local execution_control_state. Update to execution_control_state split. (init_execution_control_state): Adjust. (init_thread_stepping_state): New, extracted from init_execution_control_state. (context_switch): Take a ptid instead of an execution_control_state. (context_switch_to): Adjust. (adjust_pc_after_break): Adjust. (init_infwait_state): New. (handle_inferior_event): Adjust.
2008-07-09 Per-thread commands.Pedro Alves9-44/+221
* gdbthread.h: Remove unneeded forward declarations. Include "inferior.h". (struct thread_info): Add continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi and stop_signal members. (save_infrun_state): Add continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat parameters. (load_infrun_state): Add continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat parameters. * thread.c (load_infrun_state): In non-stop mode, load continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi and stop_signal. (save_infrun_state): Store continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat. (save_infrun_state): Store continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat. (free_thread): Clear The thread's stop_bpstat. * inferior.h (context_switch_to): Declare. * infrun.c (ecss): New global. (context_switch): Context switch continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat. (wait_for_inferior): Use global ecss. (async_ecss, async_ecs): Delete. (fetch_inferior_event): Use global ecss. (context_switch_to): New. * top.c (execute_command): In non-stop, only check if the current thread is running, in all-stop, check if there's any thread running. * breakpoint.c (bpstat_remove_breakpoint): New. (bpstat_remove_breakpoint_callback): New. (delete_breakpoint): Clear the stop_bpstats of all threads. * mi/mi-main.c (mi_cmd_execute): In non-stop, only check if the current thread is running, in all-stop, check if there's any thread running. * Makefile.in (gdbthread_h): Depend on $(inferior_h).
2008-07-09 Add non_stop global.Pedro Alves3-0/+62
* inferior.h (non_stop): Declare. * infrun.c (non_stop, non_stop_1): New. (set_non_stop, show_non_stop): New. (_initialize_infrun): Add "set/show non-stop" command.
2008-07-09 Adjust fork/vfork/exec to pass ptids around.Pedro Alves10-42/+75
* target.h (struct target_waitstatus): Store related_pid as a ptid. (inferior_has_forked, inferior_has_vforked, inferior_has_execd): Take a ptid_t. * breakpoint.h (struct breakpoint): Change forked_inferior_pid type to ptid. * breakpoint.c (print_it_typical, bpstat_check_location) (print_one_breakpoint_location, set_raw_breakpoint_without_location) (create_fork_vfork_event_catchpoint): Adjust. * infrun.c (fork_event): Change parent_pid and child_pid types to ptid. (follow_exec, inferior_has_forked, inferior_has_vforked) (inferior_has_execd): Take a ptid_t and don't trim it. * linux-thread-db.c (thread_db_wait): Don't trim the returned ptid. * linux-nat.c (linux_child_follow_fork): Adjust. * inf-ptrace.c (inf_ptrace_wait): Adjust. * inf-ttrace.c (inf_ttrace_wait): Adjust. * win32-nat.c (get_win32_debug_event): Don't set related_pid.
2008-07-09 Add "executing" property to threads.Pedro Alves16-58/+199
* inferior.h (target_executing): Delete. * gdbthread.h (struct thread_info): Add executing_ field. (set_executing, is_executing): New. * thread.c (main_thread_executing): New. (init_thread_list): Clear it and also main_thread_running. (is_running): Return false if target has no execution. (any_running, is_executing, set_executing): New. * top.c: Include "gdbthread.h". (target_executing): Delete. (execute_command): Replace target_executing check by any_running. * event-top.c: Include "gdbthread.h". (display_gdb_prompt, command_handler): Replace target_executing by is_running. * inf-loop.c: Include "gdbthread.h". Don't mark as not executing here. Replace target_executing by is_running. * infrun.c (handle_inferior_event): Mark all threads as not-executing. * linux-nat.c (linux_nat_resume): Don't mark thread as executing here. * stack.c (get_selected_block): Return null if inferior is executing. * target.c (target_resume): Mark resumed ptid as executing. * breakpoint.c (until_break_command): Replace target_executing check by is_executing. * remote.c (remote_async_resume): Don't mark inferior as executing here. * mi/mi-interp.c (mi_cmd_interpreter_exec): Replace target_executing by any_running. * mi/mi-main.c (mi_cmd_exec_interrupt, mi_cmd_execute) (mi_execute_async_cli_command): Replace target_executing by is_running. * frame.c (get_current_frame): Error out if the current thread is executing. (has_stack_frames): New. (get_selected_frame, deprecated_safe_get_selected_frame): Check has_stack_frames. * Makefile.in (event-top.o, frame.o, inf-loop.o, top.o): Depend on $(gdbthread_h).
2008-07-09gdb/Pedro Alves4-7/+16
2008-07-09 Pedro Alves <pedro@codesourcery.com> * symfile.c (load_command): Reopen the exec file and reread symbols before anything else. gdb/testsuite/ 2008-07-09 Pedro Alves <pedro@codesourcery.com> * gdb.base/chng-syms.exp: Don't expect "No symbol ...".
2008-07-09 * remote-sim.c: Include gdbthread.h.Pedro Alves3-4/+66
(remote_sim_ptid): New global. (gdbsim_create_inferior): Silently add the main task to GDB's thread list. (gdbsim_close, gdbsim_mourn_inferior): Silently delete the main task from GDB's thread list. (gdbsim_resume): Adjust to use remote_sim_ptid. (gdbsim_thread_alive, gdbsim_pid_to_str): New. (init_gdbsim_ops): Register gdbsim_thread_alive and gdbsim_pid_to_str. (_initialize_remote_sim): Initialize remote_sim_ptid. * Makefile.in (remote-sim.o): Depend on $(gdbthread_h).
2008-07-09 * monitor (monitor_ptid): New global.Pedro Alves4-4/+89
(monitor_open): Silently add the main task to GDB's thread list. (monitor_close, monitor_mourn_inferior): Silently delete the main task from GDB's thread list. (monitor_thread_alive, monitor_pid_to_str): New. (init_base_monitor_ops): Register monitor_thread_alive and monitor_pid_to_str. (_initialize_remote_monitors): Initialize monitor_ptid. * gdbthread.h (delete_thread_silent): Declare. * thread.c (delete_thread): Rename to ... (delete_thread_1): ... this. Add "silent" parameter. If silent, don't do exit notifications. (delete_thread, delete_thread_silent): New, as wrappers to delete_thread_1.
2008-07-09 * gdb.base/fullname.exp: Restore pwd if compiling failed.Pedro Alves2-0/+5
2008-07-09*** empty log message ***gdbadmin1-1/+1
2008-07-08 * breakpoint.c (update_global_location_list): Add booleanPedro Alves2-37/+68
"should_insert" argument. Only insert locations if caller told it too. (update_global_location_list_nothrow): Add boolean "should_insert" argument. Pass it to update_global_location_list. (insert_breakpoints, create_longjmp_breakpoint) (create_overlay_event_breakpoint, enable_overlay_breakpoints) (create_thread_event_breakpoint, create_solib_event_breakpoint) (create_fork_vfork_event_catchpoint, create_exec_event_catchpoint) (enable_watchpoints_after_interactive_call_stop) (set_momentary_breakpoint, create_breakpoints) (break_command_really, watch_command_1) (create_ada_exception_breakpoint, update_breakpoint_locations) (do_enable_breakpoint, enable_command): Pass true to update_global_location_list. (bpstat_stop_status, disable_overlay_breakpoints) (disable_watchpoints_before_interactive_call_start) (delete_breakpoint, disable_breakpoint, disable_command): Pass false to update_global_location_list. (update_breakpoints_after_exec): Don't temporarily disable always-inserted mode.
2008-07-08 * breakpoint.c (mark_breakpoints_out): Make public.Pedro Alves5-7/+42
(update_breakpoints_after_exec): Don't call mark_breakpoints_out here. Update comment. * breakpoint.h (mark_breakpoints_out): Declare. * linux-nat.c (linux_handle_extended_wait): On TARGET_WAITKIND_EXECD, call mark_breakpoints_out. * inf-ttrace.c (inf_ttrace_wait): Likewise.
2008-07-08 * infrun.c (follow_exec): Reset shared libraries before adding thePedro Alves2-5/+14
main exec file.
2008-07-08*** empty log message ***gdbadmin1-1/+1
2008-07-07 * server.c (handle_v_attach): Inhibit reporting dll changes.Pedro Alves2-0/+9
2008-07-07gdb/Jan Kratochvil5-1/+86
* breakpoint.c (bpstat_copy): Call RELEASE_VALUE on the new OLD_VAL. gdb/testsuite/ * gdb.base/value-double-free.exp, gdb.base/value-double-free.c: New.
2008-07-07 * i386-dicos-tdep.c: Include "inferior.h".Pedro Alves3-1/+27
(i386_dicos_frame_align): New. (i386_dicos_init_abi): Register i386_dicos_frame_align. Set call dummy location ON_STACK. * Makefile.in (i386-dicos-tdep.o): Depend on $(inferior_h).
2008-07-07 * gstdint.h: New file.Joel Brobecker2-0/+37
2008-07-07(GDB/MI Target Manipulation): Fix last change.Andreas Schwab2-76/+80
2008-07-07*** empty log message ***gdbadmin1-1/+1
2008-07-06 * gdb.texinfo (GDB/MI Target Manipulation): AddVladimir Prus2-2/+13
example of -target-attach.
2008-07-06*** empty log message ***gdbadmin1-1/+1
2008-07-05 * mi/mi-interp.c (mi_on_resume): Don't try to reportVladimir Prus2-0/+11
resumed thread it the thread list is empty.
2008-07-05Add missed changelog entry.Daniel Jacobowitz2-0/+30
2008-07-05*** empty log message ***gdbadmin1-1/+1
2008-07-04 * cli/cli-decode.c (add_setshow_optional_filename_cmd): SetPierre Muller3-1/+16
completer for set to filename_completer. NEWS: Mention it.
2008-07-04 Implement -target-attach.Vladimir Prus2-1/+6
* mi/mi-cmds.c (mi_cmds): Forward -target-attach to CLI attach.
2008-07-04*** empty log message ***gdbadmin1-1/+1
2008-07-032008-06-21 Hui Zhu <teawater@gmail.com>Michael Snyder2-1/+5
* target-descriptions.c (maint_print_c_tdesc_cmd): Fix a memory leak.
2008-07-03 * config/i386/nm-cygwin.h (ATTACH_NO_WAIT): Delete.Pedro Alves9-33/+59
* config/i386/nm-i386gnu.h (ATTACH_NO_WAIT): Delete. * target.h (struct target_ops): Add to_attach_no_wait member. (target_attach_no_wait): New. * target.c (update_current_target): Inherit to_attach_no_wait. * infcmd.c: Replace ATTACH_NO_WAIT compile time check by target_attach_no_wait runtime check. * gnu-nat.c (init_gnu_ops): Set to_attach_no_wait in gnu_ops. * win32-nat.c (init_win32_ops): Set to_attach_no_wait in win32_ops.
2008-07-03 * i386-tdep.c (i386_displaced_step_fixup): Condition log printingPedro Alves2-2/+8
on debug_displaced being set.
2008-07-03*** empty log message ***gdbadmin1-1/+1
2008-07-02*** empty log message ***gdbadmin1-1/+1