aboutsummaryrefslogtreecommitdiff
path: root/gdb
AgeCommit message (Collapse)AuthorFilesLines
2010-03-24gdbTom Tromey11-97/+302
PR breakpoints/9352: * NEWS: Mention changes to `commands' and `rbreak'. * symtab.c (do_end_rbreak_breakpoints): New function. (rbreak_command): Call start_rbreak_breakpoints; arrange to call end_rbreak_breakpoints. * breakpoint.c (breakpoint_count, tracepoint_count): Now static. (set_breakpoint_count): Likewise. Clear last_was_multi. (multi_start, multi_end, last_was_multi): New globals. (start_rbreak_breakpoints, end_rbreak_breakpoints): New functions. (struct commands_info): New (do_map_commands_command): New function. (commands_command_1): New function. (commands_command): Use it. (commands_from_control_command): Likewise. (do_delete_breakpoint): New function. (delete_command): Use it. (map_breakpoint_numbers): Add 'data' argument. Pass to callback. (do_map_disable_breakpoint): New function. (disable_command): Use it. (do_map_enable_breakpoint): New function. (enable_command): Use it. (enable_once_breakpoint): Add argument. (enable_once_command): Update. (enable_delete_breakpoint): Add argument. (enable_delete_command): Update. (break_command_really): Set last_was_multi when needed. (check_tracepoint_command): Fix formatting. (validate_commands_for_breakpoint): New function. (breakpoint_set_commands): Use it. (tracepoint_save_command): Update. * breakpoint.h (start_rbreak_breakpoints, end_rbreak_breakpoints): Declare. gdb/doc PR breakpoints/9352: * gdb.texinfo (Break Commands): Update. gdb/testsuite PR breakpoints/9352: * gdb.base/default.exp: Update. * gdb.base/commands.exp: Update. * gdb.cp/extern-c.exp: Test setting commands on multiple breakpoints at once.
2010-03-24 * gdb.base/call-signal-resume.exp, gdb.base/unwindonsignal.exp: SkipDaniel Jacobowitz5-4/+19
if gdb,nosignals. * gdb.base/watchpoints.c: Do not include unnecessary headers. * lib/gdb.exp (gdb_test_multiple): Relax pattern for "the program exited".
2010-03-24 * linux-low.c (status_pending_p_callback): Fix comment.Pedro Alves2-292/+333
(linux_wait_for_event_1): Move most of the internal breakpoint handling from here... (linux_wait_1): ... to here. (count_events_callback): New. (select_singlestep_lwp_callback): New. (select_event_lwp_callback): New. (cancel_breakpoints_callback): New. (select_event_lwp): New. (linux_wait_1): Simplify internal breakpoint handling. Give equal priority to all LWPs that have had events that should be reported to the client. Cancel breakpoints when about to reporting the event to the client, not while stopping lwps. No longer cancel finished single-steps here. (cancel_finished_single_step): Delete. (cancel_finished_single_steps): Delete.
2010-03-24 * breakpoint.h (struct counted_command_line): New struct.Tom Tromey4-40/+132
(struct breakpoint) <commands>: Change type. (struct bpstats) <commands>: Change type. <commands_left>: New field. * breakpoint.c (alloc_counted_command_line): New function. (incref_counted_command_line): Likewise. (decref_counted_command_line): Likewise. (do_cleanup_counted_command_line): Likewise. (make_cleanup_decref_counted_command_line): Likewise. (breakpoint_set_commands): Use decref_counted_command_line and alloc_counted_command_line. (commands_command): Don't error if breakpoint commands are executing. (commands_from_control_command): Likewise. (bpstat_free): Update. (bpstat_copy): Likewise. (bpstat_clear_actions): Likewise. (bpstat_do_actions_1): Likewise. (bpstat_stop_status): Likewise. (print_one_breakpoint_location): Likewise. (delete_breakpoint): Likewise. (bpstat_alloc): Initialize new field. (tracepoint_save_command): Update. * tracepoint.c (encode_actions): Update. (trace_dump_command): Update.
2010-03-24 * mem-break.c (enum bkpt_type): New.Pedro Alves3-26/+80
(struct breakpoint): New field `type'. (set_breakpoint_at): Change return type to struct breakpoint pointer. Set type to `other_breakpoint' by default. (delete_breakpoint): Rewrite, supporting more than one breakpoint in the breakpoint list. (delete_reinsert_breakpoints): Only delete reinsert breakpoints. (reinsert_breakpoint): Rename to ... (reinsert_raw_breakpoint): ... this. (reinsert_breakpoints_at): Adjust. * mem-break.h (struct breakpoint): Declare. (set_breakpoint_at): Change return type to struct breakpoint pointer.
2010-03-242010-03-24 Stan Shebs <stan@codesourcery.com>Stan Shebs2-1/+5
* gdb.trace/tfile.exp: Expect "trace frame", with a space.
2010-03-24 * dwarf2-frame.c (dwarf2_frame_find_quirks): Use producer_is_realview.Daniel Jacobowitz8-40/+115
* dwarf2read.c (load_full_comp_unit): Read DW_AT_producer. (read_structure_type): For RealView, set TYPE_STUB on structures with no byte size and no children. (read_subroutine_type): Mark functions as prototyped by default. * symtab.c (producer_is_realview): New function. * symtab.h (expand_line_sal): Fix declaration formatting. (producer_is_realview): Declare. testsuite/ * gdb.base/callfuncs.exp (do_function_calls): Add XFAILs for RealView. * gdb.base/ptype.exp (ptype_maybe_prototyped): Add overprototyped argument. Handle "short" and "long". (Top level): Pass overprototyped output for old_fptr and xptr.
2010-03-24 * arm-tdep.c (skip_prologue_function): New function.Daniel Jacobowitz2-206/+548
(submask, bit, bits, sbits, BranchDest): Move higher in the file. (thumb_analyze_prologue): Document return value. Recognize more Thumb instructions, skippable calls, and some Thumb-2 instructions. Add debug output. (arm_skip_prologue): Remove call dummy check. Check the prologue for non-GNU compilers. (arm_instruction_changes_pc): New function. (arm_analyze_prologue): New function, broken out from arm_scan_prologue. Recognize more ARM instructions and skippable calls. Update comments. Handle NULL cache. Return the address of the first unrecognized instruction. Do not skip past other instructions which change control flow. Add debug output. (arm_scan_prologue): Use arm_analyze_prologue. (ARM_PC_32): Delete. (shifted_reg_val): Simplify ARM_PC_32 check.
2010-03-24 * tracepoint.c (tvariables_info_1): Actually computeVladimir Prus2-1/+6
the number of rows in the result.
2010-03-24 gdb/Pedro Alves4-31/+88
* remote.c (crc32): Constify `buf' parameter. (remote_verify_memory): New, abstracted out from... (compare_sections_command): ... this. Remove hardcoded target checks. (init_remote_ops): Install remote_verify_memory. * target.c (target_verify_memory): New. * target.h (struct target_ops) <to_verify_memory>: New field. (target_verify_memory): Declare.
2010-03-24 * server.c (handle_query): Assign, not compare.Pedro Alves2-1/+5
2010-03-24 Teach linux gdbserver to step-over-breakpoints.Pedro Alves7-439/+1286
* linux-low.c (can_hardware_single_step): New. (supports_breakpoints): New. (handle_extended_wait): If stopping threads, read the stop pc of the new cloned LWP. (get_pc): New. (get_stop_pc): Add `lwp' parameter. Handle it. Bail out if the low target doesn't support retrieving the PC. (add_lwp): Set last_resume_kind to resume_continue. (linux_attach_lwp_1): Adjust comments. Always set stop_expected. (linux_attach): Don't clear stop_expected. Set the lwp's last_resume_kind to resume_stop. (linux_detach_one_lwp): Don't check for removed breakpoints. (check_removed_breakpoint): Delete. (status_pending_p): Rename to ... (status_pending_p_callback): ... this. Don't check for removed breakpoints. Don't consider threads that are stopped from GDB's perspective. (linux_wait_for_lwp): Always read the stop_pc here. (cancel_breakpoint): New. (step_over_bkpt): New global. (linux_wait_for_event_1): Implement stepping over breakpoints. (gdb_wants_lwp_stopped): New. (gdb_wants_all_stopped): New. (linux_wait_1): Tag threads as gdb-wants-stopped. Cancel finished single-step traps here. Store the thread's last reported target wait status. (send_sigstop): Don't clear stop_expected. Always set it, instead. (mark_lwp_dead): Remove reference to pending_is_breakpoint. (cancel_finished_single_step): New. (cancel_finished_single_steps): New. (wait_for_sigstop): Don't cancel finished single-step traps here. (linux_resume_one_lwp): Don't check for removed breakpoints. Don't set `step' on non-hardware step archs. (linux_set_resume_request): Ignore resume_stop requests if already stopping or stopped. Set the lwp's last_resume_kind. (resume_status_pending_p): Don't check for removed breakpoints. (need_step_over_p): New. (start_step_over): New. (finish_step_over): New. (linux_resume_one_thread): Always queue a sigstop for resume_stop requests. Clear the thread's last reported target waitstatus. Don't use the `suspended' flag. Don't consider pending breakpoints. (linux_resume): Start a step-over if necessary. (proceed_one_lwp): New. (proceed_all_lwps): New. (unstop_all_lwps): New. * linux-low.h (struct lwp_info): Rewrite comment for the `suspended' flag. Add the `stop_pc' field. Delete the `pending_stop_pc' field. Tweak the `stepping' flag's comment. Add `'last_resume_kind' and `need_step_over' fields. * inferiors.c (struct thread_info): Delete, moved elsewhere. * mem-break.c (struct breakpoint): Delete `reinserting' flag. Delete `breakpoint_to_reinsert' field. New flag `inserted'. (set_raw_breakpoint_at): New. (set_breakpoint_at): Rewrite to use it. (reinsert_breakpoint_handler): Delete. (set_reinsert_breakpoint): New. (reinsert_breakpoint_by_bp): Delete. (delete_reinsert_breakpoints): New. (uninsert_breakpoint): Rewrite. (uninsert_breakpoints_at): New. (reinsert_breakpoint): Rewrite. (reinsert_breakpoints_at): New. (check_breakpoints): Rewrite. (breakpoint_here): New. (breakpoint_inserted_here): New. (check_mem_read): Adjust. * mem-break.h (breakpoints_supported, breakpoint_here) (breakpoint_inserted_here, set_reinsert_breakpoint): Declare. (reinsert_breakpoint_by_bp): Delete declaration. (delete_reinsert_breakpoints): Declare. (reinsert_breakpoint): Delete declaration. (reinsert_breakpoints_at): Declare. (uninsert_breakpoint): Delete declaration. (uninsert_breakpoints_at): Declare. (check_breakpoints): Adjust prototype. * server.h: Adjust include order. (struct thread_info): Declare here. Add a `last_status' field.
2010-03-24*** empty log message ***gdbadmin1-1/+1
2010-03-23 * gdb.threads/pthreads.c (thread1, thread2, main): Fix printfPedro Alves2-8/+13
format strings and add casts to avoid compiler warnings.
2010-03-232010-03-23 Michael Snyder <msnyder@vmware.com>Michael Snyder2-0/+73
* server.c (crc32): New function. (handle_query): Add handling for 'qCRC:' request.
2010-03-23 * gdb.texinfo (GDB/MI Tracepoint Commands): Document MI tracepointVladimir Prus2-17/+230
commands.
2010-03-23 Implement -trace-save.Vladimir Prus9-30/+92
* mi-cmds.h (mi_cmds_trace_save): Declare. * mi-cmds.c (mi_cmds): Register -trace-save. * mi/mi-main.c (mi_cmd_trace_save): New. * remote.c (remote_save_trace_data): Take const parameter. * target.h (struct target_ops::to_save_trace_data): Take const parameter. * target.c (update_current_target): Adjust to the above. * tracepoint.c (trave_save): New, extracted from (trace_save_command): ...this. (tfile_trace_find): Remove message that is unnecessary now that 'tfind' reports found frame. * tracepoint.h (trace_save): Declare.
2010-03-23 Implement -trace-find.Vladimir Prus8-16/+155
* mi/mi-cmds.c (mi_cmds): Register -trace-find. * mi/mi-cmds.h (mi_cmd_trace_find): Declare. * mi/mi-main.c (mi_cmd_trace_find): New. * target.h (struct target_ops): Document to_trace_find. * tracepoint.h (tfind_1): Declare. * tracepoint.c (finish_tfind_command): Rename to... (tfind_1): ...this. * remote.c (remote_trace_find): Return -1 if target say there's no frame. Improve error diagnostics.
2010-03-23 -trace-define-variable and -trace-list-variables.Vladimir Prus6-17/+119
* tracepoint.c (create_trace_state_variable): Make private copy of name, as opposed to assuming the pointer lives forever. (tvariables_info_1): New. (tvariables_info): Use the above. * tracepoint.h (create_trace_state_variable, tvariables_info_1): Declare. * mi/mi-cmds.c (mi_cmds): Register -trace-define-variable and -trace-list-variables. * mi/mi-cmds.h (mi_cmd_trace_define_variable) (mi_cmd_trace_list_variables): New. * mi/mi-main.c (mi_cmd_trace_define_variable) (mi_cmd_trace_list_variables): New.
2010-03-23 Implement -break-passcount.Vladimir Prus4-0/+35
* mi/mi-cmd-break.c (mi_cmd_break_passcount): New. * mi/mi-cmds.c (mi_cmds): Register -break-passcount. * mi/mi-cmds.h (mi_cmd_break_passcount): Declare.
2010-03-23 -trace-start/-trace-end/-trace-status.Vladimir Prus6-12/+156
* mi/mi-cmds.c (mi_cmds): Register -trace-start, -trace-status and -trace-stop. * mi/mi-cmds.h (mi_cmd_trace_start, mi_cmd_trace_status) (mi_cmd_trace_stop): Declare. * mi/mi-main.c (mi_cmd_trace_start, mi_cmd_trace_status) (mi_cmd_trace_stop): New. * tracepoint.c (start_tracing): New, extracted from... (trace_start_command): ...this. (trace_status_mi): New. * tracepoint.h (struct trace_status): Document stopping_tracepoint. (start_tracing, stop_tracing, trace_status_mi): Declare.
2010-03-23 Implement creating tracepoints with -break-insert.Vladimir Prus2-2/+16
* mi/mi-cmd-break.c (mi_cmd_break_insert): Handle -a to mean that tracepoint should be created.
2010-03-23 * breakpoint.c (check_no_tracepoint_commands): UseVladimir Prus2-2/+7
current spelling of 'teval'.
2010-03-23Remove conflict marker.Vladimir Prus1-1/+0
2010-03-23 Unify actions and commandsVladimir Prus14-342/+375
* defs.h (read_command_lines, read_command_lines_1): New parameters validator and closure. * tracepoint.h (struct action_line): Remove. * breakpoint.h (struct breakpoint): Remove the 'actions' field. * defs.h (enum command_control_type): New value while_stepping_control. (struct command_line): Add comments. * breakpoint.c (breakoint_is_tracepoint): New. (breakpoint_set_commands): For tracepoints, verify the commands are permissible. (check_tracepoint_commands): New. (commands_command): Require that each new line is validated using check_tracepoint_command, if we set commands for a tracepoint. (create_tracepoint_from_upload): Likewise. (print_one_breakpoint_location): Remove the code to print actions specifically. (tracepoint_save_command): Relay to print_command_lines. * cli/cli-script.c (process_next_line): New parameters validator and closure. Handle 'while-stepping'. Call validator if not null. (read_command_lines, read_command_lines1): Likewise. (recurse_read_control_structure): New parameters validator and closure. Handle while_stepping_control. (print_command_lines): Handle while-stepping. (get_command_line, define_command, document_command): Adjust. * remote.c (remote_download_tracepoint): Adjust. * tracepoint.c (make_cleanup_free_actions, read_actions) (free_actions, do_free_actions_cleanup): Remove. (trace_actions_command): Use read_command_lines. (validate_actionline): Use error in one place. (encode_actions_1): New, extracted from... (encode_actions): ...this. Also use cleanups for exception safety. (trace_dump_command): Adjust. * mi/mi-cmd-break (mi_cmd_break_commands): Validate commands if it's tracepoint.
2010-03-23gdb: fix building with system readlineMike Frysinger2-1/+6
Building gdb with --enable-targets=all and --with-system-readline hits a failure in a few targets all related to the inclusion of some opcodes headers. The usage of the bundled readline results in an -I to the top srcdir, but if that isn't used, then there is no such -I path. A few gdb targets use this implicitly to include opcodes/ source header files. So make sure there is always an explicit -I path to the opcodes/ directory.
2010-03-23 * linux-x86-low.c (x86_linux_prepare_to_resume): Clear DR6 if thePedro Alves2-1/+10
lwp had been stopped by a watchpoint.
2010-03-23*** empty log message ***gdbadmin1-1/+1
2010-03-22gdb/testsuite/Jan Kratochvil2-4/+9
* dg-extract-results.sh: Sync with GCC HEAD (import r155655, r157175 and r157645).
2010-03-222010-03-22 Stan Shebs <stan@codesourcery.com>Stan Shebs2-9/+8
* value.c (value_static_field): Be lazy about the field's value.
2010-03-222010-03-22 Reid Kleckner <reid@kleckner.net>Tom Tromey2-1/+16
PR gdb/11094 * breakpoint.c (disable_breakpoints_in_unloaded_shlib): Add bp_jit_event. (disable_breakpoints_in_shlibs): Likewise.
2010-03-22gdb/testsuite/Jan Kratochvil3-0/+156
* gdb.dwarf2/dw2-empty-namespace.exp, gdb.dwarf2/dw2-empty-namespace.S: New.
2010-03-22 * gdb.python/Makefile.in (EXECUTABLES): Add py-mi.Daniel Jacobowitz3-2/+7
* gdb.python/py-mi.exp (binfile): Rename to py-mi.
2010-03-22 * dwarf2read.c (partial_die_parent_scope): Work around buggyUlrich Weigand2-0/+25
GCC 4.1 debug info generation (GCC PR c++/28460). (determine_prefix): Likewise.
2010-03-22*** empty log message ***gdbadmin1-1/+1
2010-03-21*** empty log message ***gdbadmin1-1/+1
2010-03-20 * tui/tui-disasm.c (tui_get_begin_asm_address): Default toDaniel Jacobowitz3-2/+10
get_current_arch. * tui/tui-layout.c (extract_display_start_addr): Likewise.
2010-03-20*** empty log message ***gdbadmin1-1/+1
2010-03-192010-03-19 Stan Shebs <stan@codesourcery.com>Stan Shebs4-28/+200
* ax-gdb.c (gen_fetch): Handle bool. (gen_usual_unary): Ditto. (gen_cast): Ditto. (gen_equal): New function. (gen_less): New function. (gen_expr_binop_rest): Call them, also return integer type from logical operations. (gen_expr): Ditto. * gdb.trace/ax.exp: New file.
2010-03-19 * jv-lang.c (jv_dynamics_objfile_data_key)Tom Tromey2-23/+90
(jv_type_objfile_data_key): New globals. (class_symtab): Move earlier. (jv_per_objfile_free): New function. (get_dynamics_objfile): Call set_objfile_data. Add 'gdbarch' parameter. Remove ancient #if 1. (add_class_symbol): Remove redundant declaration. (java_lookup_class): Use alloc_type, not alloc_type_arch. (java_link_class_type): Mark as static. Update. (jv_clear_object_type): New function. (set_java_object_type): Likewise. (get_java_object_type): Use set_java_object_type. (is_object_type): Likewise. (_initialize_java_language): Register new objfile keys. (get_java_class_symtab): Add 'gdbarch' parameter. (add_class_symtab_symbol): Update. (type_from_class): Update.
2010-03-192010-03-19 Stan Shebs <stan@codesourcery.com>Stan Shebs2-1/+5
* ax-general.c (ax_const_l): Fix a sizing bug.
2010-03-19 * lib/gdb.exp (gdb_compile_test): Watch for "compiler not installed"Doug Evans2-0/+5
output from gcc.
2010-03-19 * gdb.base/break-interp.exp (prelinkNO): Handle prelink binariesDoug Evans2-1/+6
named /usr/sbin/prelink<foo>.
2010-03-19*** empty log message ***gdbadmin1-1/+1
2010-03-18GDB 7.1 released.gdbadmin1-0/+4
2010-03-182010-03-18 Stan Shebs <stan@codesourcery.com>Stan Shebs12-20/+269
Pedro Alves <pedro@codesourcery.com> * target.h (struct target_ops): New method to_set_circular_trace_buffer. (target_set_circular_trace_buffer): New macro. * target.c (update_current_target): Add to_set_circular_trace_buffer, fix to_set_disconnected_tracing default behavior. * remote.c (remote_set_circular_trace_buffer): New function. (init_remote_ops): Add it to vector. * tracepoint.h (struct trace_status): New field traceframes_created, change buffer_size and buffer_free to int. * tracepoint.c (circular_trace_buffer): New global. (start_tracing): Send values of disconnected tracing and circular trace buffer settings. (set_circular_trace_buffer): New function. (parse_trace_state): Handle total space and frames created. (trace_status_command): Display total space and total frames created. (trace_save): Write out new status values. (parse_trace_status): Set traceframe_count, traceframes_created, buffer_free and buffer_size to -1 by default. (_initialize_tracepoint): New setshow for circular-trace-buffer. * NEWS: Mention the circular trace buffer option. * gdb.texinfo (Starting and Stopping Trace Experiments): Describe circular-trace-buffer. (Tracepoint Packets): Describe QTBuffer, and details of the qTStatus reply. * gdb.trace/circ.exp: Test circular-trace-buffer. * gdb.trace/tfile.exp: Update tstatus test.
2010-03-18[dwarf] Anonymous nested function causes SEGV during psymbol readJoel Brobecker5-5/+335
According to the DWARF3 standard, a function always has a name attribute (Section 3.3 - Subroutine and Entry Point Entries). The only exception is when a DW_AT_abstract_origin attribute is provided, in which case the name may be inherited from the referenced DIE. The problem occured because our compiler generated a subprogram DIE for a nested function where the name attribute was missing (and no abstract-origin either). Our code in add_partial_symbol is not prepared to deal with the situation, and happily just tries to compute the length of the (NULL) function name. This normally cannot happen, because there is already a guard in scan_partial_symbols, where we (silently!) ignore anonymous dies, including anonymous subprograms. Unfortunately, there is a flaw that affects Ada and other languages that allow nested subprograms. For nested subprograms, we do not go through scan_partial_symbols and thus we are missing the name check. This patch adds the name check in the nested subprogram case. It also adds a complaint which is emitted during the psymtab->symtab conversion phase. gdb/ChangeLog: * dwarf2read.c (add_partial_subprogram): Make sure the subprogram DIE has a name before creating the associated partial symbol. (read_func_scope): Emit a complaint if the subprogram does not have a name or when we can't extract the subprogram PC bounds. gdb/testsuite/ChangeLog: * gdb.dwarf2/dw2-anonymous-func.S: New file. * gdb.dwarf2/dw2-anonymous-func.exp: New testcase. Tested on x86_64-linux, no regression. Note that the testcase also verifies that the psymtab->symtab conversion does not crash (this is the purpose of the "list file1.txt:1" test.
2010-03-18 * infcmd.c (finish_command_continuation): Wrap print_return_valueTom Tromey2-1/+18
in TRY_CATCH.
2010-03-18Fix last checkinStan Shebs1-1/+1
2010-03-18ChangeLog:Ulrich Weigand4-4/+11
* mi/mi-main.c (mi_cmd_list_thread_groups): Use get_current_arch instead of selected frame architecture. testsuite/ChangeLog: * gdb.mi/gdb680.exp: Revert 2009-06-17 change.