aboutsummaryrefslogtreecommitdiff
path: root/gdb/breakpoint.c
AgeCommit message (Collapse)AuthorFilesLines
2011-03-142011-03-14 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon1-0/+14
* gdb.texinfo (Breakpoints In Python): Add description and example of Python stop function operation. 2010-03-14 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-breakpoint.exp: Add Python stop operations tests. 2011-03-14 Phil Muldoon <pmuldoon@redhat.com> * python/python.h: Declare gdbpy_should_stop and gdbpy_breakpoint_has_py_cond. * python/python.c: Add python.h to includes. Remove python.h from HAVE_PYTHON definition (gdbpy_should_stop): New dummy function. (gdbpy_breakpoint_has_py_cond): New dummy function. * python/py-breakpoint.c (bppy_init): Rewrite to allow sub-classing capabilities. (gdbpy_should_stop): New function. (gdbpy_breakpoint_has_py_cond): New function. (local_setattro): New function. * breakpoint.c (condition_command): Add check for Python 'stop' operation. (bpstat_check_breakpoint_conditions): Execute Python 'stop' operation function as part of stop/continue tests.
2011-03-14 Fix ARI warning about functions without parameters that do notPierre Muller1-1/+1
use (void). * breakpoint.c (all_tracepoints): Replace () by (void). * f-exp.y (match_string_literal): Ditto. (yylex): Ditto. * m2-exp.y (yylex): Ditto. * mep-tdep.c (current_me_module): Ditto. (current_options): Ditto. (current_cop_data_bus_width): Ditto. (current_cr_names): Ditto. (current_cr_is_float): Ditto. (current_ccr_names): Ditto. * objc-exp.y (yylex): Ditto. * p-exp.y (yylex): Ditto. * remote.c (send_interrupt_sequence): Ditto. * tracepoint.c (current_trace_status): Ditto. * python/py-evts.c (gdbpy_initialize_py_events): Ditto. * python/py-prettyprint.c (push_dummy_python_frame): Ditto.
2011-03-10 * tracepoint.c (trace_actions_command): Update.Tom Tromey1-37/+53
* thread.c (thread_apply_command): Update. * reverse.c (delete_bookmark_command): Update. (bookmarks_info): Update. * printcmd.c (undisplay_command): Update. * memattr.c (mem_enable_command): Update. (mem_disable_command): Update. (mem_delete_command): Update. * inferior.c (detach_inferior_command): Update. (kill_inferior_command): Update. (remove_inferior_command): Update. * cli/cli-utils.h (struct get_number_or_range_state): New. (init_number_or_range): Declare. (get_number_or_range): Update. * cli/cli-utils.c (init_number_or_range): New function. (get_number_or_range): Change 'pp' parameter to 'state'. Remove static variables. (number_is_in_list): Update. * breakpoint.h (get_tracepoint_by_number): Update. * breakpoint.c (map_breakpoint_numbers): Update for change to get_number_or_range. (find_location_by_number): Use get_number, not get_number_or_range. (trace_pass_set_count): New function. (trace_pass_command): Update for change to get_number_or_range. Rework loop logic. (get_tracepoint_by_number): Remove 'multi_p' parameter; add 'state' parameter.
2011-03-04 * breakpointc (print_it_typical): Move NULL check from here...Thiago Jung Bauermann1-7/+6
(print_bp_stop_message): ... to here.
2011-03-042011-03-04 Michael Snyder <msnyder@msnyder-server.eng.vmware.com>Michael Snyder1-4/+6
* breakpoint.c (enable_command): Use break instead of continue, and fill in a missing break. (disable_command): Ditto.
2011-03-042011-03-04 Michael Snyder <msnyder@vmware.com>Michael Snyder1-0/+1
* breakpoint.c (create_breakpoint): Add missing break statement.
2011-03-012011-02-28 Michael Snyder <msnyder@vmware.com>Michael Snyder1-2/+4
* breakpoint.c (breakpoint_adjustment_warning): Make local char buffers a little bigger, to avoid possibility of an overflow.
2011-02-282011-02-28 Michael Snyder <msnyder@vmware.com>Michael Snyder1-1/+4
* breakpoint.c (catch_syscall_completer): Free malloced list.
2011-02-28 * breakpoint.c (print_one_breakpoint_location): Remove unusedUlrich Weigand1-10/+4
argument PRINT_ADDRESS_BITS. Update callers. (print_one_breakpoint): Likewise.
2011-02-28 * breakpoint.c (wrap_indent_at_field): New function.Ulrich Weigand1-20/+41
(print_breakpoint_location): Use it instead of WRAP_INDENT argument. Allocate ui_stream locally instead of using STB argument. (print_one_breakpoint_location): Update call. * ui-out.c (ui_out_query_field): New function. * ui-out.h (ui_out_query_field): Add prototype.
2011-02-272011-02-26 Michael Snyder <msnyder@vmware.com>Michael Snyder1-1/+2
* breakpoint.c (reattach_breakpoints): Avoid resource leak (ui_file).
2011-02-232011-02-21 Michael Snyder <msnyder@vmware.com>Michael Snyder1-86/+87
* breakpoint.c (breakpoint_1): Change first argument from an int to a char pointer, so that the function now accepts a list of breakpoints rather than just one. Use new function 'number_is_in_list' to implement. (breakpoints_info): Pass char * instead of int to breakpoint_1. (watchpoints_info): Ditto. (tracepoints_info): Ditto. (maintenance_info_breakpoints): Ditto. (_initialize_breakpoint): Update help strings to reflect the fact that these functions can now take more than one argument. * cli/cli-utils.c (number_is_in_list): New function. * cli/cli-utils.h (number_is_in_list): Export. 2011-02-21 Michael Snyder <msnyder@vmware.com> * gdb.texinfo (Set Breaks): Add @dots{} to arguments of info break. (Set Watchpoints): Add @dots{} to argument of info watchpoints. (Listing Tracepoints): Add @dots{} to argument of info tracepoints. 2011-02-21 Michael Snyder <msnyder@vmware.com> * gdb.base/break.exp: Add tests for "info break" with arguments. * gdb.trace/infotrace.exp: Update patterns for error and help. * gdb.base/completion.exp: Update pattern. * gdb.base/ena-dis-br.exp: Update pattern. * gdb.base/help.exp: Update patterns.
2011-02-21 * breakpoint.c (catch_syscall_command_1): Fix typo.Tom Tromey1-1/+1
2011-02-21 * reverse.c: Include cli-utils.h.Tom Tromey1-195/+15
* printcmd.c: Include cli-utils.h. (string_printf): Use skip_spaces. * cli/cli-utils.h: New file. * cli/cli-utils.c: New file. * cli/cli-dump.h (skip_spaces): Move to cli-utils.h. * cli/cli-dump.c (skip_spaces): Move to cli-utils.c. * breakpoint.h (get_number, get_number_or_range): Move to cli-utils.h. * breakpoint.c: Include cli-utils.h. (get_number_trailer, get_number, get_number_or_range) (ep_skip_leading_whitespace): Move to cli-utils.c. (create_breakpoint_sal, find_condition_and_thread) (decode_static_tracepoint_spec, watch_command_1) (watch_maybe_just_location, ep_parse_optional_if_clause) (catch_fork_command_1, catch_exec_command_1) (catch_syscall_command_1): Use skip_spaces, skip_to_space. * Makefile.in (SUBDIR_CLI_OBS): Add cli-utils.o. (SUBDIR_CLI_SRCS): Add cli-utils.c. (HFILES_NO_SRCDIR): Add cli-utils.h. (cli-utils.o): New target.
2011-02-21 * breakpoint.c (update_watchpoint): Do not attempt to recreateUlrich Weigand1-6/+14
per-frame locations while within a function epilogue.
2011-02-18 * breakpoint.c (get_number_trailer): No longer accept a NULL PP.Pedro Alves1-7/+2
* breakpoint.h (get_number_or_range): Declare. * printcmd.c (ALL_DISPLAYS): Declare. (delete_display): Reimplement taking a display pointer. (undisplay_command): Accept a range of displays to delete, using get_number_or_range.
2011-02-152011-02-15 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov1-38/+160
* breakpoint.c (longjmp_names): New variable. (struct breakpoint_objfile_data): New type. (breakpoint_objfile_key): New variable. (msym_not_found): New variable. (msym_not_found_p): New predicate. (get_breakpoint_objfile_data): New function. (create_overlay_event_breakpoint): Check per-objfile cache for symbols first. (create_longjmp_master_breakpoint): Likewise. (create_std_terminate_master_breakpoint): Likewise. (create_exception_master_breakpoint): Likewise. (_initialize_breakpoint): Register per-objfile data key.
2011-02-152011-02-15 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov1-31/+42
* breakpoint.c ((create_overlay_event_breakpoint): Const-propagate parameter value. (create_longjmp_master_breakpoint): Loop over longjmp names. (create_std_terminate_master_breakpoint): Const-propagate parameter value. (update_breakpoints_after_exec): Adjust. (breakpoint_re_set): Adjust.
2011-02-07 * breakpoint.c (parse_breakpoint_sals): Fix description.Thiago Jung Bauermann1-2/+5
2011-02-04 Fix some typos.Thiago Jung Bauermann1-4/+4
* breakpoint.c (update_watchpoint): Fix name of the update_global_location_list function. (print_one_breakpoint): Fix typo. (_initialize_breakpoint): Remove extra space in hbreak help string. * breakpoint.h (struct bp_location) <length>: Fix field description.
2011-01-312011-01-31 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov1-0/+13
* breakpoint.h (remove_jit_event_breakpoints): New prototype. * breakpoint.c (remove_jit_event_breakpoints): New function. * jit.c (jit_descriptor_addr): Delete. (registering_code): Delete. (clear_int): Delete. (jit_inferior_data): New variable. (struct jit_inferior_data): New type. (get_jit_inferior_data): New function. (jit_inferior_data_cleanup): New function. (jit_read_descriptor): Adjust. (jit_register_code): Adjust. (jit_breakpoint_re_set_internal): New function; move code here ... (jit_inferior_init): ... from here. (jit_breakpoint_re_set): Adjust. (jit_reset_inferior_data_and_breakpoints): New function. (jit_inferior_created_observer): Adjust. (jit_inferior_exit_hook): Adjust. (jit_executable_changed_observer): New function. (jit_event_handler): Adjust. (_initialize_jit): Adjust.
2011-01-31 * infcmd.c (finish_backward): Use breakpoint_set_silent.Tom Tromey1-7/+40
* python/py-breakpoint.c (bppy_set_silent): Use breakpoint_set_silent. (bppy_set_thread): Use breakpoint_set_thread. (bppy_set_task): Use breakpoint_set_task. * breakpoint.h (breakpoint_set_silent, breakpoint_set_thread) (breakpoint_set_task): Declare. (make_breakpoint_silent): Remove. * breakpoint.c (breakpoint_set_silent): New function. (breakpoint_set_thread): Likewise. (breakpoint_set_task): Likewise. (make_breakpoint_silent): Remove.
2011-01-31 * breakpoint.h (user_breakpoint_p): Declare.Tom Tromey1-6/+13
* breakpoint.c (user_breakpoint_p): New function. (breakpoint_1): Use it. (save_breakpoints): Likewise.
2011-01-112011-01-11 Thiago Jung Bauermann <bauerman@br.ibm.com>Thiago Jung Bauermann1-2/+2
* breakpoint.c (resources_needed_watchpoint): Fix indentation. * gdbtypes.c (is_scalar_type_recursive): Fix formatting.
2011-01-112011-01-11 Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>Thiago Jung Bauermann1-38/+97
Thiago Jung Bauermann <bauerman@br.ibm.com> Implement support for PowerPC BookE ranged watchpoints. gdb/ * breakpoint.h (struct breakpoint_ops) <resources_needed>: New method. Initialize to NULL in all existing breakpoint_ops instances. (struct breakpoint) <exact>: New field. (target_exact_watchpoints): Declare external global. * breakpoint.c (target_exact_watchpoints): New global flag. (update_watchpoint): Set b->type to bp_hardware_watchpoint and b->enable_state to bp_enabled before calling hw_watchpoint_used_count. (hw_watchpoint_used_count): Iterate over all bp_locations in a watchpoint. Call breakpoint's breakpoint_ops.resources_needed if available. (insert_watchpoint, remove_watchpoint): Use fixed length of 1 byte if the watchpoint is exact. (resources_needed_watchpoint): New function. (watchpoint_breakpoint_ops): Add resources_needed_watchpoint. (watch_command_1): Set b->exact if the user asked for an exact watchpoint and one can be set. (can_use_hardware_watchpoint): Add exact_watchpoints argument. Pass fixed length of 1 to target_region_ok_for_hw_watchpoint if the user asks for an exact watchpoint and one can be set. Return number of needed debug registers to watch the expression. * gdbtypes.c (is_scalar_type): New function, based on valprint.c:scalar_type_p. (is_scalar_type_recursive): New function. * gdbtypes.h (is_scalar_type_recursive): Declare. * ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint): Always handle regions when ranged watchpoints are available. (create_watchpoint_request): New function. (ppc_linux_insert_watchpoint, ppc_linux_remove_watchpoint): Use create_watchpoint_request. * rs6000-tdep.c (show_powerpc_exact_watchpoints): New function. (_initialize_rs6000_tdep): Add `exact-watchpoints' boolean to the `set powerpc' and `show powerpc' commands. * target.h (struct target_ops) <to_region_ok_for_hw_watchpoint>: Mention documentation comment in the target macro. (target_region_ok_for_hw_watchpoint): Document return value. gdb/doc/ * gdb.texinfo (PowerPC Embedded): Document ranged watchpoints and the "set powerpc exact-watchpoints" flag.
2011-01-112011-01-11 Thiago Jung Bauermann <bauerman@br.ibm.com>Thiago Jung Bauermann1-34/+44
* breakpoint.c (update_watchpoint): Decide on using a software or hardware watchpoint after the bp_locations are created.
2011-01-112010-01-11 Thiago Jung Bauermann <bauerman@br.ibm.com>Thiago Jung Bauermann1-59/+92
Convert hardware watchpoints to use breakpoint_ops. gdb/ * breakpoint.h (breakpoint_ops) <insert>: Rename to... <insert_location>: ... this. Return int instead of void. Accept pointer to struct bp_location instead of pointer to struct breakpoint. Adapt all implementations. (breakpoint_ops) <remove>: Rename to... <remove_location>: ... this. Accept pointer to struct bp_location instead of pointer to struct breakpoint. Adapt all implementations. * breakpoint.c (insert_catchpoint): Delete function. (insert_bp_location): Call the watchpoint or catchpoint's breakpoint_ops.insert method. (remove_breakpoint_1): Call the watchpoint or catchpoint's breakpoint_ops.remove method. (insert_watchpoint, remove_watchpoint): New functions. (watchpoint_breakpoint_ops): New structure. (watch_command_1): Initialize the OPS field. * inf-child.c (inf_child_insert_fork_catchpoint) (inf_child_remove_fork_catchpoint, inf_child_insert_vfork_catchpoint) (inf_child_remove_vfork_catchpoint, inf_child_insert_exec_catchpoint) (inf_child_remove_exec_catchpoint, inf_child_set_syscall_catchpoint): Delete functions. (inf_child_target): Remove initialization of to_insert_fork_catchpoint, to_remove_fork_catchpoint, to_insert_vfork_catchpoint, to_remove_vfork_catchpoint, to_insert_exec_catchpoint, to_remove_exec_catchpoint and to_set_syscall_catchpoint. * target.c (update_current_target): Change default implementation of to_insert_fork_catchpoint, to_remove_fork_catchpoint, to_insert_vfork_catchpoint, to_remove_vfork_catchpoint, to_insert_exec_catchpoint, to_remove_exec_catchpoint and to_set_syscall_catchpoint to return_one. (debug_to_insert_fork_catchpoint, debug_to_insert_vfork_catchpoint) (debug_to_insert_exec_catchpoint): Report return value. * target.h (to_insert_fork_catchpoint, to_insert_vfork_catchpoint) (to_insert_exec_catchpoint): Change declaration to return int instead of void. gdb/testsuite/ * gdb.base/foll-exec.exp: Adapt to new error string when the catchpoint type is not supported. * gdb.base/foll-fork.exp: Likewise. * gdb.base/foll-vfork.exp: Likewise.
2011-01-072011-01-07 Michael Snyder <msnyder@vmware.com>Michael Snyder1-3/+3
* ax-gdb.c: Adjust some long output strings. * breakpoint.c: Ditto. * charset.c: Ditto. * cp-abi.c: Ditto. * infcall.c: Ditto. * infrun.c: Ditto. * linux-nat.c: Ditto. * solib-pa64.c: Ditto. * solib-som.c: Ditto.
2011-01-052011-01-05 Michael Snyder <msnyder@vmware.com>Michael Snyder1-64/+106
* addrmap.c: Shorten lines of >= 80 columns. * arch-utils.c: Ditto. * arch-utils.h: Ditto. * ax-gdb.c: Ditto. * ax-general.c: Ditto. * bcache.c: Ditto. * blockframe.c: Ditto. * breakpoint.c: Ditto. * buildsym.c: Ditto. * c-lang.c: Ditto. * c-typeprint.c: Ditto. * charset.c: Ditto. * coffread.c: Ditto. * command.h: Ditto. * corelow.c: Ditto. * cp-abi.c: Ditto. * cp-namespace.c: Ditto. * cp-support.c: Ditto. * dbug-rom.c: Ditto. * dbxread.c: Ditto. * defs.h: Ditto. * dfp.c: Ditto. * dfp.h: Ditto. * dictionary.c: Ditto. * disasm.c: Ditto. * doublest.c: Ditto. * dwarf2-frame.c: Ditto. * dwarf2expr.c: Ditto. * dwarf2loc.c: Ditto. * dwarf2read.c: Ditto. * elfread.c: Ditto. * eval.c: Ditto. * event-loop.c: Ditto. * event-loop.h: Ditto. * exceptions.h: Ditto. * exec.c: Ditto. * expprint.c: Ditto. * expression.h: Ditto. * f-lang.c: Ditto. * f-valprint.c: Ditto. * findcmd.c: Ditto. * frame-base.c: Ditto. * frame-unwind.c: Ditto. * frame-unwind.h: Ditto. * frame.c: Ditto. * frame.h: Ditto. * gcore.c: Ditto. * gdb-stabs.h: Ditto. * gdb_assert.h: Ditto. * gdb_dirent.h: Ditto. * gdb_obstack.h: Ditto. * gdbcore.h: Ditto. * gdbtypes.c: Ditto. * gdbtypes.h: Ditto. * inf-ttrace.c: Ditto. * infcall.c: Ditto. * infcmd.c: Ditto. * inflow.c: Ditto. * infrun.c: Ditto. * inline-frame.h: Ditto. * language.c: Ditto. * language.h: Ditto. * libunwind-frame.c: Ditto. * libunwind-frame.h: Ditto. * linespec.c: Ditto. * linux-nat.c: Ditto. * linux-nat.h: Ditto. * linux-thread-db.c: Ditto. * machoread.c: Ditto. * macroexp.c: Ditto. * macrotab.c: Ditto. * main.c: Ditto. * maint.c: Ditto. * mdebugread.c: Ditto. * memattr.c: Ditto. * minsyms.c: Ditto. * monitor.c: Ditto. * monitor.h: Ditto. * objfiles.c: Ditto. * objfiles.h: Ditto. * osabi.c: Ditto. * p-typeprint.c: Ditto. * p-valprint.c: Ditto. * parse.c: Ditto. * printcmd.c: Ditto. * proc-events.c: Ditto. * procfs.c: Ditto. * progspace.c: Ditto. * progspace.h: Ditto. * psympriv.h: Ditto. * psymtab.c: Ditto. * record.c: Ditto. * regcache.c: Ditto. * regcache.h: Ditto. * remote-fileio.c: Ditto. * remote.c: Ditto. * ser-mingw.c: Ditto. * ser-tcp.c: Ditto. * ser-unix.c: Ditto. * serial.c: Ditto. * serial.h: Ditto. * solib-frv.c: Ditto. * solib-irix.c: Ditto. * solib-osf.c: Ditto. * solib-pa64.c: Ditto. * solib-som.c: Ditto. * solib-sunos.c: Ditto. * solib-svr4.c: Ditto. * solib-target.c: Ditto. * solib.c: Ditto. * somread.c: Ditto. * source.c: Ditto. * stabsread.c: Ditto. * stabsread.c: Ditto. * stack.c: Ditto. * stack.h: Ditto. * symfile-mem.c: Ditto. * symfile.c: Ditto. * symfile.h: Ditto. * symmisc.c: Ditto. * symtab.c: Ditto. * symtab.h: Ditto. * target-descriptions.c: Ditto. * target-memory.c: Ditto. * target.c: Ditto. * target.h: Ditto. * terminal.h: Ditto. * thread.c: Ditto. * top.c: Ditto. * tracepoint.c: Ditto. * tracepoint.h: Ditto. * ui-file.c: Ditto. * ui-file.h: Ditto. * ui-out.h: Ditto. * user-regs.c: Ditto. * user-regs.h: Ditto. * utils.c: Ditto. * valarith.c: Ditto. * valops.c: Ditto. * valprint.c: Ditto. * valprint.h: Ditto. * value.c: Ditto. * varobj.c: Ditto. * varobj.h: Ditto. * vec.h: Ditto. * xcoffread.c: Ditto. * xcoffsolib.c: Ditto. * xcoffsolib.h: Ditto. * xml-syscall.c: Ditto. * xml-tdesc.c: Ditto.
2011-01-01run copyright.sh for 2011.Joel Brobecker1-1/+1
2010-12-292010-12-29 Michael Snyder <msnyder@vmware.com>Michael Snyder1-559/+628
* bcache.c: Comment clean-up. * block.c: Ditto. * blockframe.c: Ditto. * breakpoint.c: Ditto. * bsd-kvm.c: Ditto. * buildsym.c: Ditto.
2010-12-27 gdb/Pedro Alves1-0/+17
* breakpoint.c (breakpoint_restore_shadows): When looking for the location with the lowest address that overlaps the memory range we want to restore shadows for, account for multiple locations at the same address.
2010-12-27 Code cleanup - renaming.Thiago Jung Bauermann1-259/+259
* breakpoint.c: Use bl for `*bp_location' variables, blp_tmp for `**bp_location' helper variables, b_tmp for `*breakpoint' helper variables.
2010-12-09gdbTom Tromey1-9/+89
PR c++/9593: * thread.c (clear_thread_inferior_resources): Call delete_longjmp_breakpoint. * infrun.c (handle_inferior_event): Handle exception breakpoints. (handle_inferior_event): Likewise. (insert_exception_resume_breakpoint): New function. (check_exception_resume): Likewise. * inferior.h (delete_longjmp_breakpoint_cleanup): Declare. * infcmd.c (delete_longjmp_breakpoint_cleanup): No longer static. (step_1): Set thread's initiating frame. (until_next_continuation): New function. (until_next_command): Support exception breakpoints. (finish_command_continuation): Delete longjmp breakpoint. (finish_forward): Support exception breakpoints. * gdbthread.h (struct thread_info) <initiating_frame>: New field. * breakpoint.h (enum bptype) <bp_exception, bp_exception_resume, bp_exception_master>: New constants. (struct bpstat_what) <is_longjmp>: New field. (set_longjmp_breakpoint): Update. * breakpoint.c (create_exception_master_breakpoint): New function. (update_breakpoints_after_exec): Handle bp_exception_master. Call create_exception_master_breakpoint. (print_it_typical): Handle bp_exception_master, bp_exception. (bpstat_stop_status): Handle bp_exception_master. (bpstat_what): Handle bp_exception_master, bp_exception, bp_exception_resume. (bptype_string): Likewise. (print_one_breakpoint_location): Likewise. (allocate_bp_location): Likewise. (set_longjmp_breakpoint): Handle exception breakpoints. Change interface. (delete_longjmp_breakpoint): Handle exception breakpoints. (mention): Likewise. (struct until_break_command_continuation_args) <thread_num>: New field. (until_break_command_continuation): Call delete_longjmp_breakpoint. (until_break_command): Support exception breakpoints. (delete_command): Likewise. (breakpoint_re_set_one): Likewise. (breakpoint_re_set): Likewise. gdb/testuite * gdb.java/jnpe.java: New file. * gdb.java/jnpe.exp: New file. * gdb.cp/nextoverthrow.exp: New file. * gdb.cp/nextoverthrow.cc: New file.
2010-11-28gdb/Jan Kratochvil1-3/+3
Rename and move inferior_thread_state and inferior_status. * gdbthread.h (struct thread_control_state): New struct, move fields step_range_start, step_range_end, step_frame_id, step_stack_frame_id, trap_expected, proceed_to_finish, in_infcall, step_over_calls, stop_step and stop_bpstat here from struct thread_info. (struct thread_suspend_state): New struct, move field stop_signal here from struct thread_info. (struct thread_info): Move the fields above from this struct. * inferior.h: Move the inferior_thread_state and inferior_status declarations comment to their definitions at infrun.c. (struct inferior_control_state): New struct, move field stop_soon from struct inferior here. (struct inferior_suspend_state): New empty struct. (struct inferior): New fields control and suspend. Move out field stop_soon. * infrun.c (struct inferior_thread_state): Rename to ... (infcall_suspend_state): ... here. Replace field stop_signal by fields thread_suspend and inferior_suspend. (save_inferior_thread_state): Rename to ... (save_infcall_suspend_state): ... here. New variable inf. Update the code for new fields. (restore_inferior_thread_state): Rename to ... (restore_infcall_suspend_state): ... here. New variable inf. Update the code for new fields. (do_restore_inferior_thread_state_cleanup): Rename to ... (do_restore_infcall_suspend_state_cleanup): ... here. (make_cleanup_restore_inferior_thread_state): Rename to ... (make_cleanup_restore_infcall_suspend_state): ... here. (discard_inferior_thread_state): Rename to ... (discard_infcall_suspend_state): ... here. (get_inferior_thread_state_regcache): Rename to ... (get_infcall_suspend_state_regcache): ... here. (struct inferior_status): Rename to ... (struct infcall_control_state): ... here. Replace fields step_range_start, step_range_end, step_frame_id, step_stack_frame_id, trap_expected, proceed_to_finish, in_infcall, step_over_calls, stop_step, stop_bpstat and stop_soon by fields thread_control and inferior_control. (save_inferior_status): Rename to ... (save_infcall_control_state): ... here. Update the code for new fields. (restore_inferior_status): Rename to ... (restore_infcall_control_state): ... here. Update the code for new fields. (do_restore_inferior_status_cleanup): Rename to ... (do_restore_infcall_control_state_cleanup): ... here. (make_cleanup_restore_inferior_status): Rename to ... (make_cleanup_restore_infcall_control_state): ... here. (discard_inferior_status): Rename to ... (discard_infcall_control_state): ... here. * alpha-tdep.c, breakpoint.c, dummy-frame.c, dummy-frame.h, exceptions.c, fbsd-nat.c, gdbthread.h, infcall.c, infcmd.c, inferior.c, inferior.h, infrun.c, linux-nat.c, mi/mi-interp.c, mips-tdep.c, procfs.c, solib-irix.c, solib-osf.c, solib-spu.c, solib-sunos.c, solib-svr4.c, thread.c, windows-nat.c: Update all the references to the moved fields and renamed functions.
2010-11-252010-11-25 Marc Khouzam <marc.khouzam@ericsson.com>Marc Khouzam1-1/+1
PR breakpoints/12217 * breakpoint.c (is_marker_spec): Check for NULL.
2010-11-112010-11-11 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon1-38/+99
* python/py-breakpoint.c (BPPY_REQUIRE_VALID): Check if bp is NULL. (BPPY_SET_REQUIRE_VALID): Ditto. (bpnum_is_valid): Delete function. (bppy_get_visibility): New function. (bppy_new): Parse for, and validate internal keyword. Pass internal keyword to breakpoint or watchpoint functions. (build_bp_list): New function. (gdbpy_breakpoints): Rewrite. Use build_bp_list and iterate_over_breakpoints. (gdbpy_breakpoint_created): Rewrite. Do not store breakpoints in a look-aside vector. (gdbpy_breakpoint_deleted): Rewrite, defer breakpoint management to internal breakpoint chain. * breakpoint.c (set_breakpoint_number): New function. (breakpoint_1): Check if breakpoint number is more than zero. (set_raw_breakpoint_without_location): Set py_bp_object to NULL. (create_breakpoint_sal): Take a new parameter called internal. Call set_breakpoint_number with internal parameter. Do not mention internal breakpoints. All callers updated. (create_breakpoint): Ditto. (create_breakpoints_sal): Ditto. (watch_command_1): Ditto. (watch_command_wrapper): Take a new parameter called internal. All callers updated. (rwatch_command_wrapper): Ditto. (awatch_command_wrapper): Ditto. (save_breakpoints): Update breakpoint save condition check. (iterate_over_breakpoints): New function. * breakpoint.h: Add conditional python includes. Add py_bp_object and comment to struct breakpoint. Update all callers. * defs.h: Add PyObject definition for GDB builds without Python. 2010-11-11 Phil Muldoon <pmuldoon@redhat.com> * gdb.texinfo (Breakpoints In Python): Document "internal" parameter, and visible attribute. 2010-11-11 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-breakpoint.exp: Add internal watchpoint and breakpoint tests.
2010-11-09 gdb/Pedro Alves1-3/+3
* breakpoint.c (watch_command_1): Get a pointer of the lazy version of the expression's value, even if reading the value from memory fails. When creating a -location watchpoint, get the value's address from the lazy value pointer. gdb/testsuite/ * gdb.base/watchpoint.exp: Test "watch -location" with an innacessible location.
2010-09-08 * breakpoint.c (create_breakpoint): Add missing _().Tom Tromey1-1/+1
2010-09-04 * breakpoint.c (can_use_hardware_watchpoint): Handle the firstDaniel Jacobowitz1-4/+6
value specially. testsuite/ * gdb.base/watchpoint.exp: Call test_inaccessible_watchpoint before disabling hardware watchpoints. (test_inaccessible_watchpoint): Check that hardware watchpoints are used. Test for watchpoints on a constant address.
2010-09-03gdb/Jan Kratochvil1-1/+1
* breakpoint.c (save_breakpoints): Use RETURN_MASK_ALL. * cli-out.c: Include vec.h. (cli_field_fmt, cli_spaces, cli_text, cli_message, cli_flush): New variable stream, initialize it, use it. (cli_redirect): New function comment. Replace the stream and original_stream fields by the new streams field. Remove the original_stream != NULL conditional, assert error on NULL instead. (out_field_fmt, field_separator): New variable stream, initialize it, use it. (cli_out_data_ctor): Assert non-NULL stream. Replace the stream and original_stream fields by the new streams field. (cli_out_set_stream): Replace the stream field by the new streams field. * cli-out.h: Include vec.h. (ui_filep): New typedef, call DEF_VEC_P for it. (struct cli_ui_out_data): Replace the stream and original_stream fields by the new streams field. * cli/cli-logging.c (set_logging_redirect): Call ui_out_redirect with NULL first. Extend the comment. (handle_redirections): Call ui_out_redirect with output. * python/py-breakpoint.c (bppy_get_commands): Move ui_out_redirect calls outside of the TRY_CATCH block. gdb/testsuite/ * gdb.base/ui-redirect.exp: New file.
2010-08-30gdb/Jan Kratochvil1-17/+14
Code cleanup. * breakpoint.c (bpstat_alloc): Remove unused prototype. (bpstat_alloc): Change parameters cbs to bs_link_pointer. Adjust the code. (bpstat_stop_status): Change root_bs into bs_head and bs_link. Adjust calls of bpstat_alloc. Remove explicit bs chain termination.
2010-08-17 * breakpoint.c (decref_bp_location): Assert the reference count isPedro Alves1-0/+2
sane.
2010-08-17gdb/Pedro Alves1-97/+143
2010-08-17 Pedro Alves <pedro@codesourcery.com> PR breakpoints/11371 * breakpoint.c (breakpoint_init_inferior): Decrement the location's reference count instead of deleting right away. (bpstat_free): Decrement the location's reference count. Make static. (bpstat_copy): Increment the location's reference count. (bpstat_find_breakpoint): Adjust. (bpstat_num): Adjust. (print_it_typical): Adjust. Use the breakpoint pointer in the bpstat instead of the location's owner. (bpstat_alloc): Remove const qualifier from the 'bl' parameter. Adjust to record the location's owner in the bpstat. (watchpoint_check): Use the breakpoint pointer in the bpstat instead of the location's owner. (bpstat_check_breakpoint_conditions): Don't handle bp_watchpoint_scope here. Use the breakpoint pointer in the bpstat instead of the location's owner. (bpstat_stop_status): Defer inferior function calls to after building the bpstat list. Handle bp_watchpoint_scope here. Use the breakpoint pointer in the bpstat instead of the location's owner. (bpstat_what): Use the breakpoint pointer in the bpstat instead of the location's owner. (free_bp_location): Don't walk bpstats clearing locations. (incref_bp_location): New. (decref_bp_location): New. (breakpoint_auto_delete): Use the breakpoint pointer in the bpstat instead of the location's owner. (update_global_location_list): Clear the location's owner, and decrement the location's reference count instead of deleting it right away. (breakpoint_retire_moribund): Decrement the location's reference count instead of deleting it right away. (bpstat_remove_bp_location): Delete. (bpstat_remove_breakpoint): New. (bpstat_remove_bp_location_callback): Delete. (bpstat_remove_breakpoint_callback): New. (delete_breakpoint): Iterate over all threads' stop_bpstat's clearing references to the breakpoint that is being deleted. * breakpoint.h (struct bp_location) <refc>: New field. <owner>: Update comments. (bpstat_free): Delete declaration. (struct bpstats): Change the type of the breakpoint_at field to struct breakpoint point, from struct bp_location pointer. Add new field bp_location_at. gdb/testsuite/ 2010-08-17 Jan Kratochvil <jan.kratochvil@redhat.com> Pedro Alves <pedro@codesourcery.com> PR breakpoints/11371 * gdb.base/watch-cond-infcall.exp: New file. * gdb.base/watch-cond-infcall.c: New file.
2010-08-16gdb/Jan Kratochvil1-3/+8
* breakpoint.c (update_watchpoint): Add source empty line. Prefer EXP_STRING_REPARSE to EXP_STRING. (watch_command_1): Set also EXP_STRING_REPARSE. (delete_breakpoint): Free also EXP_STRING_REPARSE. * breakpoint.h (struct breakpoint): New field exp_string_reparse. Update comment for exp_string.
2010-08-16gdbTom Tromey1-21/+84
* value.c (release_value): Clear 'next' pointer. * breakpoint.c (watch_command_1): Add 'just_location' argument. (watch_command_wrapper): Update. (watch_maybe_just_location): New function. (watch_command): Update. (rwatch_command_wrapper): Update. (rwatch_command): Update. (awatch_command_wrapper): Update. (awatch_command): Update. (check_for_argument): New function. (_initialize_breakpoint): Update help text. gdb/testsuite * gdb.base/help.exp: Update. * gdb.base/watchpoint.exp (test_watchpoint_and_breakpoint): Delete watchpoint. (test_watch_location): New proc. (test_watchpoint_in_big_blob): Delete watchpoint. * gdb.base/watchpoint.c (func5): New function. (main): Call it. gdb/doc * gdb.texinfo (Set Watchpoints): Document -location option.
2010-08-03 * breakpoint.c (bpdisp_text): Constify bpdisps.Doug Evans1-1/+1
* solib-svr4.c (solib_break_names): Constify. (bkpt_names, main_name_list): Constify. (match_main): Constify soname arg. (bfd_lookup_symbol): Constify symname arg. (enable_break): Constify bkpt_namep. * symtab.c (search_symbols): Constify types, types2, types3, types4. (symtab_symbol_info): Constify classnames.
2010-07-28[PATCH] breakpoint_re_set fails while connecting to gdbserver.Joel Brobecker1-1/+1
This is a problem that I noticed on GNU/Linux, when using both GDB and GDBserver to debug an Ada program. To reproduce, use any Ada program, built with debug info ("gnatmake -g ..."). Then start the program with gdbserver: % gdbserver :4444 simple_main And then insert a breakpoint using the name of an Ada function, followed by connecting to the target server: (gdb) b simple.test_simple Breakpoint 1 at 0x401f28: file simple.adb, line 16. (gdb) tar rem :4444 Remote debugging using :4444 Reading symbols from /lib64/ld-linux-x86-64.so.2... Reading symbols from /usr/lib/debug/lib/ld-2.11.1.so...done. done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 !! -> Error in re-setting breakpoint 1: Can't find member of namespace, class, !! -> struct, or union named "simple.test_simple" !! -> Hint: try 'simple.test_simple<TAB> or 'simple.test_simple<ESC-?> !! -> (Note leading single quote.) 0x00007f4db3cf2af0 in _start () from /lib64/ld-linux-x86-64.so.2 Created trace state variable $trace_timestamp for target's variable 1. The problem is related to the fact that GDB found debug symbols for ld.so in /usr/lib/debug. For debugger configured with a prefix that is different from /usr, one way to force the problem to reproduce is to use: (gdb) set debug-file-directory /usr/lib/debug (assuming that debug info has been installed at that location). The problem is that the wrong language is used to parse the breakpoint location because it gets changed from under us as a side effect of some of the code that we do in prepration for re-parsing. In particular, breakpoint_re_set_one reads: set_language (b->language); input_radix = b->input_radix; s = b->addr_string; save_current_space_and_thread (); switch_to_program_space_and_thread (b->pspace); marker_spec = b->type == bp_static_tracepoint && is_marker_spec (s); [if (marker_spec) decode_tracepoint_spec (...) else decode_line_1] What happens in our case is that debugging information gets found for ld.so. As a result, the current_frame language is C whereas it would have been unknown if we did not have debugging info. And save_current_space_and_thread() implicitly causes the current frame to be selected, which changes the language automatically if the new language is not uknown and the the language mode is auto. The fix, until all parsing routines (including decode_line_1) get upgraded to take a language, is to select the breakpoint language as late as possible. In this case, we don't need to do that until we actually try to parse the breakpoint addr_string. gdb/ChangeLog: * breakpoint.c (breakpoint_re_set_one): Move call to set_language down, just before the block that parse the breakpoint addr_string.
2010-07-21 * breakpoint.c (bptype_string): New, abstracted out fromPedro Alves1-22/+36
print_one_breakpoint_location. (print_one_breakpoint_location): Adjust. (breakpoint_1): Adjust the type column width dynamically.
2010-07-192010-07-19 Hui Zhu <teawater@gmail.com>Hui Zhu1-0/+10
* breakpoint.c (single_step_breakpoints_inserted): New function. * breakpoint.h (single_step_breakpoints_inserted): Extern. * infrun.c (maybe_software_singlestep): Add check code. * record.c (record_resume): Add code for software single step. (record_wait): Ditto.