* tracepoint.c: Include stack.h.
(struct add_local_symbols_data): New.
(do_collect_symbol): New.
(add_local_symbols): Rewrite using iterate_over_block_arg_vars and
iterate_over_block_local_vars.
* stack.c (print_block_frame_locals): Rewrite as ...
(iterate_over_block_locals): ... this. Take a callback function
pointer and generic data pointer, and call that instead of
print_variable_and_value.
(struct print_variable_and_value_data): New.
(do_print_variable_and_value): New.
(iterate_over_block_local_vars): New, abstracted out from
print_frame_local_vars.
(print_frame_local_vars): Rewrite using
iterate_over_block_local_vars.
(iterate_over_block_arg_vars): New, abstracted out from
print_frame_arg_vars.
(print_frame_arg_vars): Rewrite using iterate_over_block_arg_vars.
* stack.h (iterate_over_block_arg_local_vars_cb): New typedef.
(iterate_over_block_arg_vars, iterate_over_block_local_vars): Declare.
gdb/testsuite/
* gdb.trace/collection.c (local_test_func): Define a local struct,
and instanciate it.
Fix crash on reading wrong function declaration DWARF.
* dwarf2read.c (read_subroutine_type): New variable void_type.
Pre-fill all TYPE_FIELD_TYPEs. Move nparams and iparams initialization
more close to their use.
gdb/testsuite/
* gdb.dwarf2/dw2-bad-parameter-type.exp,
gdb.dwarf2/dw2-bad-parameter-type.S: New.
* breakpoint.c (tracepoint_save_command): Include variables,
conditionals, tracepoint types, and default-collect.
* tracepoint.c (save_trace_state_variables): New function.
* tracepoint.h (save_trace_state_variables): Declare it.
* gdb.trace/save-trace.exp: Test save/restore of default-collect
and tracepoint conditionals.
(gdb_verify_tracepoints): Delete unused return.
for java, regardless of whether it is TYPE_PROTOTYPED.
Use the passed-in language instead of current_language.
(c_type_print_varspec_suffix): Use current_language instead
of assuming language_c.
* jv-typeprint.c (java_type_print_base): (bz 9320) Strip off
any return type specifier from the physname.
(tui_init): Set it.
(tui_allowed_p): New.
* tui/tui.c (tui_enable): Check if the TUI is allowed before
enabling it.
* tui/tui.h (tui_allowed_p): Declare.
* cli/cli-script.c (process_next_line): Handle 'stepping'.
gdb/testsuite/
* gdb.trace/while-dyn.exp (executable): New variable.
(binfile): Use it.
(test_while_stepping): New function. Move most tests here. Call
it once for each of the while-stepping, stepping and ws aliases.
(skip_prologue_sal): Remove local definition.
(resolve_sal_pc): Remove now unnecessary code.
* linespec.c (minsym_found): Call skip_prologue_sal.
* symtab.c (find_function_start_pc): Remove.
(find_function_start_sal): Extract prologue skipping into ...
(skip_prologue_sal): ... this new function. Handle code both
with and without debug info. Respect SAL's explicit_pc and
explicit_line flags. Inline old find_function_start_pc.
* symtab.h (find_function_start_pc): Remove.
(skip_prologue_sal): Add prototype.
* dwarf2read.c (dwarf2_name): Work around GCC bugzilla debug/41828 by
ignoring spurious DW_AT_name attributes for unnamed structs or unions.
* completer.c (add_struct_fields): Fix inverted logic.
testsuite/ChangeLog:
* gdb.cp/inherit.exp (test_ptype_si): XFAIL test for GCC versions
that do not provide the tagless_struct type name at all.
(test_print_anon_union): Do not check value of uninitialized
union member. Do not use cp_test_ptype_class, so we can accept
"long" as well as "long int".
is non-NULL here.
(parse_trace_status): Release a previous error_desc string, and
set it to NULL by default. If stop reason is tracepoint_error,
make sure error_desc is not left NULL.
* tracepoint.c (parse_trace_status): Don't allow plain strings in
the terror description. Don't expect an X prefix.
gdb/doc/
* gdb.texinfo (Tracepoint Packets): Remove mention that
terror:string may be plain text, and drop mention of X prefix.
* symfile.c (build_section_addr_info_from_bfd): New.
(build_section_addr_info_from_objfile): Base it on
build_section_addr_info_from_bfd.
(addrs_section_compar, addrs_section_sort): New.
(addr_info_make_relative): New variables my_cleanup, abfd_addrs,
addrs_sorted, abfd_addrs_sorted and addrs_to_abfd_addrs. Build
addrs_to_abfd_addrs. Use it for recalculating ADDRS.
gdb/testsuite/
* gdb.base/dup-sect.exp, gdb.base/dup-sect.S: New.
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.
* 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.
(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.
* 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.
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.