Tom Tromey [Wed, 13 Sep 2017 03:13:03 +0000 (21:13 -0600)]
Constify unset_exec_wrapper_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* fork-child.c (unset_exec_wrapper_command): Constify.
Tom Tromey [Wed, 13 Sep 2017 03:12:42 +0000 (21:12 -0600)]
Constify some commands in btrace.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* btrace.c (get_uint, get_context_size, no_chunk)
(maint_btrace_packet_history_cmd)
(maint_btrace_clear_packet_history_cmd, maint_btrace_clear_cmd)
(maint_info_btrace_cmd): Constify.
Tom Tromey [Wed, 13 Sep 2017 03:09:47 +0000 (21:09 -0600)]
Constify delete_bookmark_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* reverse.c (delete_bookmark_command): Constify.
Tom Tromey [Wed, 13 Sep 2017 03:09:35 +0000 (21:09 -0600)]
Constify some commands in remote.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* remote.c (set_memory_packet_size)
(set_memory_write_packet_size, show_memory_write_packet_size)
(set_memory_read_packet_size, show_memory_read_packet_size)
(compare_sections_command, packet_command, remote_put_command)
(remote_get_command, remote_delete_command): Constify.
Tom Tromey [Wed, 13 Sep 2017 03:05:40 +0000 (21:05 -0600)]
Constify some commands in mips-tdep.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* mips-tdep.c (show_mipsfpu_command, set_mipsfpu_single_command)
(set_mipsfpu_double_command, set_mipsfpu_none_command)
(set_mipsfpu_auto_command): Constify.
Tom Tromey [Wed, 13 Sep 2017 03:02:08 +0000 (21:02 -0600)]
Constify cd_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cli/cli-cmds.h (cd_command): Constify.
* cli/cli-cmds.c (cd_command): Constify.
Tom Tromey [Wed, 13 Sep 2017 02:45:21 +0000 (20:45 -0600)]
Constify some commands in thread.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* thread.c (thread_name_command, thread_find_command): Constify.
Tom Tromey [Wed, 13 Sep 2017 02:42:32 +0000 (20:42 -0600)]
Constify some commands in probes.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* probe.c (enable_probes_command, disable_probes_command):
Constify.
Tom Tromey [Wed, 13 Sep 2017 00:39:07 +0000 (18:39 -0600)]
Constify some commands in exec.c, plus symbol_file_command
Note that this commit also changes deprecated_file_changed_hook -- not
used in the tree, but Insight will require a (presumably minor)
change.
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* symfile.c (symbol_file_command): Constify.
* gdbcore.h (deprecated_file_changed_hook): Constify.
* exec.c (deprecated_file_changed_hook, exec_file_command)
(file_command): Constify.
* defs.h (symbol_file_command): Constify.
Tom Tromey [Wed, 13 Sep 2017 00:38:19 +0000 (18:38 -0600)]
Constify some commands in remote-fileio.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* remote-fileio.c (set_system_call_allowed)
(show_system_call_allowed): Constify.
Tom Tromey [Wed, 13 Sep 2017 00:37:46 +0000 (18:37 -0600)]
Constify some commands in tracepoint.c
In addition to the constification, this fixes a command-repeat bug.
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* tracepoint.c (delete_trace_variable_command)
(tfind_end_command, tfind_start_command, tfind_pc_command)
(tfind_tracepoint_command, tfind_line_command)
(tfind_range_command, tfind_outside_command): Constify.
Tom Tromey [Tue, 12 Sep 2017 21:00:06 +0000 (15:00 -0600)]
Constify some commands in ax-gdb.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* ax-gdb.c (maint_agent_printf_command, agent_command)
(agent_eval_command): Constify.
Tom Tromey [Wed, 13 Sep 2017 00:32:41 +0000 (18:32 -0600)]
Constify some linespec functions
This changes a few linespec functions to work on "const char *" and
then fixes up all the callers. This allows further constification
elsewhere.
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* tracepoint.c (info_scope_command): Constify.
* python/python.c (gdbpy_decode_line): Constify.
* python/py-breakpoint.c (bppy_init): Constify.
* mi/mi-cmd-break.c (mi_cmd_break_insert_1): Constify.
* location.h: (new_linespec_location)
(string_to_event_location_basic, string_to_event_location):
Constify.
* location.c (new_linespec_location)
(string_to_event_location_basic, string_to_event_location):
Constify.
* linespec.h (decode_line_with_current_source)
(decode_line_with_last_displayed, linespec_lex_to_end): Constify.
* linespec.c (linespec_lex_to_end)
(decode_line_with_current_source)
(decode_line_with_last_displayed): Constify.
* guile/scm-breakpoint.c (gdbscm_register_breakpoint_x):
Constify.
* cli/cli-cmds.c (edit_command, list_command): Constify.
* breakpoint.h (until_break_command, watch_command_wrapper)
(awatch_command_wrapper, rwatch_command_wrapper)
(init_ada_exception_breakpoint): Constify.
* breakpoint.c (break_command_1, dprintf_command)
(break_range_command, watch_command_wrapper)
(rwatch_command_wrapper, awatch_command_wrapper)
(until_break_command, init_ada_exception_breakpoint)
(strace_marker_create_sals_from_location, trace_command)
(ftrace_command, strace_command, struct tracepoint): Constify.
* ax-gdb.c (agent_command_1): Constify.
* ada-lang.c (ada_exception_sal): Constify.
Tom Tromey [Tue, 12 Sep 2017 20:56:48 +0000 (14:56 -0600)]
Constify some commands in record.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* record.c (cmd_record_delete, cmd_record_stop, cmd_record_save)
(cmd_record_goto_begin, cmd_record_goto_end, get_insn_number)
(get_context_size, no_chunk, get_insn_history_modifiers)
(cmd_record_insn_history, get_call_history_modifiers)
(cmd_record_call_history): Constify.
Tom Tromey [Tue, 12 Sep 2017 20:45:14 +0000 (14:45 -0600)]
Constify some commands in source.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* source.c (show_substitute_path_command)
(unset_substitute_path_command, set_substitute_path_command):
Constify.
Tom Tromey [Tue, 12 Sep 2017 20:40:43 +0000 (14:40 -0600)]
Constify commands maint.c, plus maintenance_print_type
In addition to the constification, this fixes a command-repeat bug.
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* typeprint.c (maintenance_print_type): Constify.
* maint.c (maintenance_dump_me, maintenance_demangle)
(maintenance_time_display, maintenance_info_sections)
(maintenance_print_statistics, maintenance_deprecate)
(maintenance_undeprecate): Constify.
(maintenance_do_deprecate): Constify. Use std::string.
(maintenance_selftest): Constify.
* gdbtypes.h (maintenance_print_type): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:52:56 +0000 (21:52 -0600)]
Constify unwind_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* hppa-tdep.c (unwind_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:52:05 +0000 (21:52 -0600)]
Constify some commands in target-descriptions.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* target-descriptions.c (unset_tdesc_filename_cmd)
(maint_print_c_tdesc_cmd, maintenance_check_xml_descriptions):
Constify.
Tom Tromey [Sun, 10 Sep 2017 03:51:39 +0000 (21:51 -0600)]
Constify maintenance_print_dummy_frames
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* dummy-frame.c (maintenance_print_dummy_frames): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:51:21 +0000 (21:51 -0600)]
Constify some commands in tui.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* tui/tui.c (tui_enable_command, tui_disable_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:51:10 +0000 (21:51 -0600)]
Constify tui_reg_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_reg_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:50:56 +0000 (21:50 -0600)]
Constify some commands in skip.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* skip.c (skip_file_command, skip_function_command)
(skip_enable_command, skip_disable_command, skip_delete_command):
Constify.
Tom Tromey [Sun, 10 Sep 2017 03:46:34 +0000 (21:46 -0600)]
Constify some commands in record-btrace.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* record-btrace.c (cmd_record_btrace_bts_start)
(cmd_record_btrace_pt_start): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:45:47 +0000 (21:45 -0600)]
Constify some commands in symmisc.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* symmisc.c (maintenance_print_symbols)
(maintenance_print_msymbols, maintenance_print_objfiles)
(maintenance_info_symtabs, maintenance_check_symtabs)
(maintenance_expand_symtabs, maintenance_info_line_tables):
Constify.
Tom Tromey [Sun, 10 Sep 2017 03:44:55 +0000 (21:44 -0600)]
Constify new_ui_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* top.c (new_ui_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:44:31 +0000 (21:44 -0600)]
Constify some commands in symfile.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* symfile.c (add_symbol_file_command)
(remove_symbol_file_command, list_overlays_command)
(map_overlay_command, unmap_overlay_command)
(overlay_auto_command, overlay_manual_command)
(overlay_off_command, overlay_load_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:41:50 +0000 (21:41 -0600)]
Constify some commands in spu-tdep.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* spu-tdep.c (info_spu_event_command, info_spu_signal_command)
(info_spu_mailbox_command, info_spu_dma_command)
(info_spu_proxydma_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:40:53 +0000 (21:40 -0600)]
Constify some commands in cli-logging.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cli/cli-logging.c (set_logging_on, set_logging_off): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:40:16 +0000 (21:40 -0600)]
Constify user_defined_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cli/cli-script.c (user_defined_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:39:18 +0000 (21:39 -0600)]
Constify commands in cli-dump.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cli/cli-dump.c (dump_memory_command, dump_value_command)
(dump_srec_memory, dump_srec_value, dump_ihex_memory)
(dump_ihex_value, dump_verilog_memory, dump_verilog_value)
(dump_tekhex_memory, dump_tekhex_value, dump_binary_memory)
(dump_binary_value, append_binary_memory, append_binary_value):
Constify.
(struct dump_context) <func>: Constify.
(add_dump_command): Update.
Tom Tromey [Sun, 10 Sep 2017 03:37:20 +0000 (21:37 -0600)]
Constify some commands in cli-cmds.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cli/cli-cmds.c (show_version, show_configuration)
(source_command, show_user): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:34:29 +0000 (21:34 -0600)]
Constify maintenance_print_target_stack
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* target.c (maintenance_print_target_stack): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:32:11 +0000 (21:32 -0600)]
Constify interpreter_exec_cmd
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* interps.c (interpreter_exec_cmd): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:31:57 +0000 (21:31 -0600)]
Constify cmd_record_full_restore
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* record-full.c (cmd_record_full_restore): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:30:40 +0000 (21:30 -0600)]
Constify some functions in memattr.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* memattr.c (enable_mem_command, disable_mem_command)
(delete_mem_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:29:57 +0000 (21:29 -0600)]
Constify show_convenience
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* value.c (show_convenience): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:25:44 +0000 (21:25 -0600)]
Constify core_file_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* gdbcore.h (core_file_command): Update.
* corefile.c (core_file_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:24:08 +0000 (21:24 -0600)]
Constify maintenance_print_user_registers
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* user-regs.c (maintenance_print_user_registers): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:23:03 +0000 (21:23 -0600)]
Constify maintenance_cplus_namespace
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cp-namespace.c (maintenance_cplus_namespace): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:22:52 +0000 (21:22 -0600)]
Constify first_component_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cp-support.c (first_component_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:22:28 +0000 (21:22 -0600)]
Constify some functions in psymtab.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* psymtab.c (maintenance_print_psymbols)
(maintenance_info_psymtabs, maintenance_check_psymtabs):
Constify.
Tom Tromey [Sun, 10 Sep 2017 03:22:05 +0000 (21:22 -0600)]
Constify display_tib
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* windows-tdep.c (display_tib): Constify.
Tom Tromey [Sun, 10 Sep 2017 03:00:26 +0000 (21:00 -0600)]
Constify two functions in linux-fork.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* linux-fork.c (delete_checkpoint_command)
(detach_checkpoint_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 02:59:50 +0000 (20:59 -0600)]
Constify two functions in cp-abi.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cp-abi.c (set_cp_abi_cmd, show_cp_abi_cmd): Constify.
Tom Tromey [Sun, 10 Sep 2017 02:59:14 +0000 (20:59 -0600)]
Constify dump_arc_instruction_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* arc-tdep.c (dump_arc_instruction_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 02:58:42 +0000 (20:58 -0600)]
Constify two functions in valprint.c
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* valprint.c (set_radix, show_radix): Constify.
Tom Tromey [Sun, 10 Sep 2017 02:57:56 +0000 (20:57 -0600)]
Constify info_probes_dtrace_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* dtrace-probe.c (info_probes_dtrace_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 02:57:10 +0000 (20:57 -0600)]
Constify not_just_help_class_command
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* command.h (not_just_help_class_command): Update.
* cli/cli-decode.h (not_just_help_class_command): Update.
* cli/cli-decode.c (not_just_help_class_command): Constify.
Tom Tromey [Sun, 10 Sep 2017 02:55:20 +0000 (20:55 -0600)]
Constify add_cmd gdb_bfd.c
This constifies a command function in gdb_bfd.c.
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* gdb_bfd.c (maintenance_info_bfds): Constify.
Tom Tromey [Sun, 10 Sep 2017 02:51:33 +0000 (20:51 -0600)]
Add add_cmd function overloads
This adds two add_cmd overloads: one whose callback takes a const char *,
and one that doesn't accept a function at all. The no-function overload
was introduced to avoid ambiguity when NULL was passed as the function.
Long term the goal is for all commands to take const arguments, and
for the non-const variants to be removed entirely.
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* cli/cli-decode.c (add_cmd, set_cmd_cfunc): New function
overloads.
(do_add_cmd): Rename from add_cmd. Don't call set_cmd_cfunc.
(do_const_cfunc): New function.
(cmd_cfunc_eq): New overload.
(cli_user_command_p): Check do_const_cfunc.
* cli/cli-decode.h (struct cmd_list_element) <function>: New field
const_cfunc.
* command.h (add_cmd): Add const overload and no-function
overload.
(set_cmd_cfunc): Add const overload.
(cmd_const_cfunc_ftype): Declare.
(cmd_cfunc_eq): Add const overload.
* breakpoint.c, cli-cmds.c, cli-dump.c, guile/scm-cmd.c,
python/py-cmd.c, target.c, tracepoint.c: Use no-function add_cmd
overload.
Tom Tromey [Mon, 18 Sep 2017 02:36:41 +0000 (20:36 -0600)]
Add support for __VA_OPT__
C++2a adds a "__VA_OPT__" feature that can be used to control the
pesky "," emission when the final (variable) argument of a variadic
macro is empty. This patch implements this feature for gdb. (A patch
to implement it for gcc is pending.)
gdb/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* macroexp.c (get_next_token_for_substitution): New function.
(substitute_args): Call it. Check for __VA_OPT__.
gdb/testsuite/ChangeLog
2017-09-27 Tom Tromey <tom@tromey.com>
* gdb.base/macscp.exp: Add __VA_OPT__ tests.
Nick Clifton [Wed, 27 Sep 2017 09:42:51 +0000 (10:42 +0100)]
Prevent an infinite loop in the DWARF parsing code when encountering a CU structure with a small negative size.
PR 22219
* dwarf.c (process_debug_info): Add a check for a negative
cu_length field.
Alan Modra [Wed, 27 Sep 2017 05:44:00 +0000 (15:14 +0930)]
PR22216, infinite loop in readelf process_symbol_table
This should make readelf bombproof given a fuzzed DT_HASH. Also
removes a bogus check that would have resulted in wrong histograms.
PR 22216
* readelf.c (process_symbol_table): Check that DT_HASH symbol
chains are only visited once, and report an error if not. Display
invalid symbol index if chain is out of range. Use the same logic
when calculating histograms rather than the PR 17531 fix. Delete
bogus check that chained index is less than number of buckets.
Kuan-Lin Chen [Wed, 27 Sep 2017 05:04:35 +0000 (13:04 +0800)]
nds32: Fix a tautological comparison.
GDB Administrator [Wed, 27 Sep 2017 00:00:23 +0000 (00:00 +0000)]
Automatic date update in version.in
H.J. Lu [Tue, 26 Sep 2017 21:41:22 +0000 (14:41 -0700)]
x86-64: Don't pass output_bfd to info->callbacks->minfo
Don't pass output_bfd to info->callbacks->minfo when dumping local IFUNC
functions in the map file.
PR ld/22199
* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't pass
output_bfd to info->callbacks->minfo.
Walfred Tedeschi [Tue, 26 Sep 2017 17:26:41 +0000 (18:26 +0100)]
dwarf2read: Restrict ICC workaround to ICC<14
GDB has a workaround for DWARF output by ICC, related to missing
DW_AT_declaration on incomplete types. The bug was fixed in ICC 14,
so this commit adjusts GDB accordingly.
For the version check, this adds a new parser function for the ICC
producer string. While at it, it also adds unit tests for the
producer parsing covering the new function and preexisting parsers.
gdb/ChangeLog:
2017-09-26 Walfred Tedeschi <walfred.tedeschi@intel.com>
Pedro Alves <palves@redhat.com>
* dwarf2read.c (dwarf2_cu): Remove field producer_is_icc and add
producer_is_icc_lt_14.
(producer_is_icc_lt_14): New function.
(check_producer): Add code for checking version of ICC.
(producer_is_icc): Move to producer.c.
(read_structure_type): Restrict ICC workaround to ICC<14.
* producer.c: Include selftest.h.
(producer_is_icc, producer_parsing_tests, _initialize_producer):
New functions.
* producer.h (producer_is_icc): New declaration.
Walfred Tedeschi [Tue, 26 Sep 2017 17:26:41 +0000 (18:26 +0100)]
Move GDB producer parsing routines to a separate file
gdb/ChangeLog:
2017-09-26 Walfred Tedeschi <walfred.tedeschi@intel.com>
* Makefile.in (SFILES): Add producer.c.
(COMMON_OBS): Add producer.o
* amd64-tdep.c (producer.h): Add new include.
* dwarf2read.c (producer.h): Add new include.
* producer.c: New file.
* producer.h: New file.
* utils.c (producer_is_gcc, producer_is_gcc_ge_4): Move to
producer.c.
* utils.h (producer_is_gcc, producer_is_gcc_ge_4): Move to
producer.h.
Sergio Durigan Junior [Fri, 15 Sep 2017 04:27:53 +0000 (00:27 -0400)]
Use "switch_to_thread" more thoroughly on gdbserver
This is a technical debt that I left when I ported "switch_to_thread"
to gdbserver. It's a simple patch that converts occurences of:
current_thread = find_thread_ptid (ptid);
to:
switch_to_thread (ptid);
This patch also converts a simple "if" to a "gdb_assert" on
gdbserver's version of "switch_to_thread":
gdb_assert (ptid != minus_one_ptid);
This change makes the code more similar to what GDB already does.
Regtested on BuildBot.
gdb/gdbserver/ChangeLog:
2017-09-26 Sergio Durigan Junior <sergiodj@redhat.com>
* gdbthread.h: Include "common-gdbthread.h".
* inferiors.c (switch_to_thread): Use "gdb_assert" instead of
"if" when validating the ptid.
* remote-utils.c: Include "gdbthread.h".
(prepare_resume_reply): Use "switch_to_thread".
* target.c (done_accessing_memory): Likewise.
Matthias Klose [Tue, 26 Sep 2017 15:23:19 +0000 (16:23 +0100)]
Allow linking GDB with ncursesw
Triggered by https://launchpad.net/bugs/1275210, to be able to cope
with UTF-8 characters in gdbtui.
Reference:
https://sourceware.org/ml/gdb-patches/2017-09/msg00356.html
gdb/ChangeLog:
2017-09-26 Matthias Klose <doko@ubuntu.com>
* configure.ac: Search ncursesw before ncurses.
Check ncursesw/ncurses.h before ncurses/ncurses.h.
* gdb_curses.h: Include <ncursesw/ncurses.h>
* config.in, configure: Regenerate.
Nick Clifton [Tue, 26 Sep 2017 15:03:10 +0000 (16:03 +0100)]
Fix an assertion failure when parsing a fuzzed x86_64 ELF binary.
PR 22172
* elf64-x86-64.c (elf_x86_64_info_to_howto): Do not trigger an
assertion failure if elf_x86_64_rtype_to_howto has already issued
an error message.
Cary Coutant [Tue, 26 Sep 2017 14:33:04 +0000 (07:33 -0700)]
Fix incorrect register mask.
PR gold/22213
* sparc.cc (Target_sparc): Fix incorrect register mask.
Alan Modra [Tue, 26 Sep 2017 13:50:06 +0000 (23:20 +0930)]
Tidy reading data in read_formatted_entries
Using read_attribute_value accomplishes two things: It checks for
unexpected formats, and ensures the buffer pointer always increments.
PR 22210
* dwarf2.c (read_formatted_entries): Use read_attribute_value to
read data.
Nick Clifton [Tue, 26 Sep 2017 13:37:47 +0000 (14:37 +0100)]
Avoid needless resource usage when processing a corrupt DWARF directory or file name table.
PR 22210
* dwarf2.c (read_formatted_entries): Fail early if we know that
the loop parsing data entries will overflow the end of the
section.
Rainer Orth [Tue, 26 Sep 2017 13:19:10 +0000 (15:19 +0200)]
Remove support for Solaris < 10 (PR gdb/22185)
Given that GCC has obsoleted/removed support for Solaris 9 in GCC 4.9/5 in 2013:
https://gcc.gnu.org/gcc-4.9/changes.html
https://gcc.gnu.org/ml/gcc-patches/2013-05/msg00728.html
and the last gdb version that can be compiled with gcc 4.9 is 7.12.1 only when
configured with --disable-build-with-cxx, it's time to obsolete/remove support
for Solaris < 10.
This patch does this, simplifying configure.nat along the way (only a single
sol2 configuration with variants for i386 and sparc).
Some configure checks for older Solaris versions can go, too, and the check
for libthread_db.so.1 removed:
* Since Solaris 10, dlopen has moved to libc and libdl.so is just a
filter on ld.so.1, so no need to check.
* $RDYNAMIC is already handled above (and is a no-op with Solaris ld
anyway).
Both proc-service.c and sol-thread.c lose support for (Solaris-only)
PROC_SERVICE_IS_OLD.
The attached revised patch has been tested on sparcv9-sun-solaris2.10,
sparcv9-sun-solaris2.11.4, amd64-pc-solaris2.10, amd64-pc-solaris2.11.4,
and x86_64-pc-linux-gnu.
I've also started an i386-pc-solaris2.9 build to check that it really
stops as expected.
PR gdb/22185
* configure.host <*-*-solaris2.[01], *-*-solaris2.[2-9]*>: Mark as
obsolete.
Use gdb_host sol2 for i[34567]86-*-solaris2*, x86_64-*-solaris2*.
Remove i386sol2 support.
* configure.nat <i386sol2>: Remove.
<sol2-64>: Fold into ...
<sol2>: ... this.
Move common settings to default section.
Add sol-thread.o.
* configure.tgt <i[34567]86-*-solaris2.1[0-9]*,
x86_64-*-solaris2.1[0-9]*>: Rename to ...
<i[34567]86-*-solaris2*, x86_64-*-solaris2*>: ... this.
<i[34567]86-*-solaris*>: Remove.
<sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*>: Remove.
* configure.ac: Remove wctype in libw check.
(_MSE_INT_H): Don't define on Solaris 7-9.
<solaris*>: Remove libthread_db.so.1 check.
* configure: Regenerate.
* config.in: Regenerate.
* proc-service.c: Remove PROC_SERVICE_IS_OLD handling.
(gdb_ps_prochandle_t, gdb_ps_read_buf_t, gdb_ps_write_buf_t)
(gdb_ps_size_t): Remove.
Use base types in users.
* sol-thread.c: Likewise, also for gdb_ps_addr_t.
* NEWS (Changes since GDB 8.0): Document Solaris 2.0-9 removal.
Rainer Orth [Tue, 26 Sep 2017 12:58:53 +0000 (14:58 +0200)]
Fix gdb 8.1 Solaris/SPARC compilation (PR build/22206)
When testing my Solaris < 10 removal patch on Solaris/SPARC, I found
that gdb mainline is currently broken there due to the recent SPARC M7
ADI patches:
/vol/src/gnu/gdb/gdb/local/gdb/sparc64-tdep.c:1876:0: error: "PSR_ICC" redefined [-Werror]
#define PSR_ICC 0x00f00000
^
In file included from /usr/include/v7/sys/privregs.h:24:0,
from /usr/include/sys/regset.h:420,
from /usr/include/sys/ucontext.h:21,
from /usr/include/sys/signal.h:231,
from /usr/include/sys/procset.h:23,
from /usr/include/sys/wait.h:25,
from /usr/include/stdlib.h:21,
from build-gnulib/import/stdlib.h:36,
from /vol/src/gnu/gdb/gdb/local/gdb/common/common-defs.h:53,
from /vol/src/gnu/gdb/gdb/local/gdb/defs.h:28,
from /vol/src/gnu/gdb/gdb/local/gdb/sparc64-tdep.c:20:
/usr/include/v7/sys/psr.h:35:0: note: this is the location of the previous definition
#define PSR_ICC 0x00F00000 /* integer condition codes */
^
/vol/src/gnu/gdb/gdb/local/gdb/sparc64-tdep.c:1878:0: error: "PSR_IMPL" redefined [-Werror]
#define PSR_IMPL 0xf0000000
^
In file included from /usr/include/v7/sys/privregs.h:24:0,
from /usr/include/sys/regset.h:420,
from /usr/include/sys/ucontext.h:21,
from /usr/include/sys/signal.h:231,
from /usr/include/sys/procset.h:23,
from /usr/include/sys/wait.h:25,
from /usr/include/stdlib.h:21,
from build-gnulib/import/stdlib.h:36,
from /vol/src/gnu/gdb/gdb/local/gdb/common/common-defs.h:53,
from /vol/src/gnu/gdb/gdb/local/gdb/defs.h:28,
from /vol/src/gnu/gdb/gdb/local/gdb/sparc64-tdep.c:20:
/usr/include/v7/sys/psr.h:41:0: note: this is the location of the previous definition
#define PSR_IMPL 0xF0000000 /* implementation */
^
Comparing Solaris 11.4 <v7/sys/psr.h> and sparc64-tdep.c, there are more
inconsistencies:
<v7/sys/psr.h>:
#define PSR_S 0x00000080 /* supervisor mode */
#define PSR_ICC 0x00F00000 /* integer condition codes */
#define PSR_VER 0x0F000000 /* mask version */
#define PSR_IMPL 0xF0000000 /* implementation */
#define PSR_RSV 0x000FC000 /* reserved */
sparc64-tdep.c:
#define PSR_S 0x00000080
#define PSR_ICC 0x00f00000
#define PSR_VERS 0x0f000000
#define PSR_IMPL 0xf0000000
#define PSR_V8PLUS 0xff000000
#define PSR_XCC 0x000f0000
Apart from the capitalization differences that trip g++, the names
differ (PSR_VER vs. PSR_VERS), PSR_XCC is included in Solaris' PSR_RSV,
and there's no PSR_V8PLUS on Solaris either.
/vol/src/gnu/gdb/gdb/local/gdb/sparc64-tdep.c: In function `int adi_tag_fd()':
/vol/src/gnu/gdb/gdb/local/gdb/sparc64-tdep.c:296:63: error: format `%d' expects argument of type `int', but argument 4 has type `pid_t {aka long int}' [-Werror=format=]
snprintf (cl_name, sizeof(cl_name), "/proc/%d/adi/tags", pid);
^
/vol/src/gnu/gdb/gdb/local/gdb/sparc64-tdep.c: In function `bool adi_is_addr_mapped(CORE_ADDR, std::size_t)':
/vol/src/gnu/gdb/gdb/local/gdb/sparc64-tdep.c:314:64: error: format `%d' expects argument of type `int', but argument 4 has type `pid_t {aka long int}' [-Werror=format=]
snprintf (filename, sizeof filename, "/proc/%d/adi/maps", pid);
^
You cannot always print a pid_t, which can be either int or long on
Solaris, as an int.
Obviously, the ADI patch which modifies code shared between all SPARC
targets, hasn't been tested on anything but Linux/SPARC.
The patch below includes the minimal fixes necessary to unbreak the
Solaris/SPARC build.
However, as detailed in the PR, there's more breakage here: apart from
not bothering to implement ADI support on Solaris, the code contains
several more changes to shared/common SPARC code that are simply wrong
on anything but Linux/SPARC.
The patch was tested on sparcv9-sun-solaris2.10 and
sparcv9-sun-solaris2.11.4 (build and gdb/gdb gdb/gdb smoke test only).
PR build/22206
* sparc64-tdep.c (adi_tag_fd): Print pid as long.
(adi_is_addr_mapped): Likewise.
(PSR_ICC): Don't redefine.
(PSR_IMPL): Likewise.
Alan Modra [Tue, 26 Sep 2017 12:17:24 +0000 (21:47 +0930)]
PR22209, invalid memory read in find_abstract_instance_name
This patch adds bounds checking for DW_FORM_ref_addr die refs, and
calculates them relative to the first .debug_info section. See the
big comment for why calculating relative to the current .debug_info
section was wrong for relocatable object files.
PR 22209
* dwarf2.c (struct comp_unit): Delete sec_info_ptr field.
(find_abstract_instance_name): Calculate DW_FORM_ref_addr relative
to stash->info_ptr_memory, and check die_ref is within that memory.
Set info_ptr_end correctly when another CU is refd. Check die_ref
for DW_FORM_ref4 etc. is within CU.
Nick Clifton [Tue, 26 Sep 2017 11:14:42 +0000 (12:14 +0100)]
Fix address violations when parsing a corrupt DWARF linenumber table.
PR 22154
* dwarf.c (get_line_filename_and_dirname): Add extra checks for
buffer overruns.
Maciej W. Rozycki [Tue, 26 Sep 2017 11:09:50 +0000 (12:09 +0100)]
LD/testsuite: Fix undefined symbol tests for MIPS and S+core targets
Fix commit
647d4de92e06 ("Test undefined symbols in shared libraries")
and remove "undefined symbols in shared lib (dyn reloc)" test failures
for MIPS and S+core targets.
This test assumes 3 dynamic relocation entries, however the respective
psABIs define an extra single dummy *_NONE relocation at the beginning
of the dynamic relocation table, which results in test output like the
following for MIPS:
Relocation section '.rel.dyn' at offset 0x33c contains 4 entries:
Offset Info Type Sym.Value Sym. Name
00000000 00000000 R_MIPS_NONE
00010364 00000903 R_MIPS_REL32
00000000 undef_pfun
00010360 00000a03 R_MIPS_REL32
00000000 undef_data
00010368 00000b03 R_MIPS_REL32
00000000 undef_notype
and S+core:
Relocation section '.rel.dyn' at offset 0x274 contains 4 entries:
Offset Info Type Sym.Value Sym. Name
00000000 00000000 R_SCORE_NONE
5ffe0464 00000e12 R_SCORE_REL32
00000000 undef_notype
5ffe045c 00000f12 R_SCORE_REL32
00000000 undef_data
5ffe0460 00001012 R_SCORE_REL32
00000000 undef_pfun
targets respectively, and also n64 MIPS targets pad relocation triplets
they use with extra *_NONE relocations, resulting in output like this:
Relocation section '.rel.dyn' at offset 0x4c0 contains 4 entries:
Offset Info Type Sym. Value Sym. Name
000000000000 000000000000 R_MIPS_NONE
Type2: R_MIPS_NONE
Type3: R_MIPS_NONE
000000010508 000900001203 R_MIPS_REL32
0000000000000000 undef_pfun
Type2: R_MIPS_64
Type3: R_MIPS_NONE
000000010500 000a00001203 R_MIPS_REL32
0000000000000000 undef_data
Type2: R_MIPS_64
Type3: R_MIPS_NONE
000000010510 000b00001203 R_MIPS_REL32
0000000000000000 undef_notype
Type2: R_MIPS_64
Type3: R_MIPS_NONE
Expect the right number of *_NONE relocations then, and adjust the total
number of relocations expected accordingly.
ld/
* testsuite/ld-undefined/undefined.exp: Correct the dyn reloc
test for MIPS and S+core targets.
Nick Clifton [Tue, 26 Sep 2017 09:33:32 +0000 (10:33 +0100)]
Allow the macw and macl instructions to be used on CPUs that have emacs support.
From PR 22123:
The common opcodes of emac and mac seem to be only implemented for mac.
To reproduce:
echo "macw %d3l,%a0l" > /tmp/dummy.S
m68k-unknown-elf-as -m5208 /tmp/dummy.S
Outputs something like:
/tmp/dummy.S: Assembler messages:
/tmp/dummy.S:1: Error: operands mismatch -- statement `macw %d3l,%a0l' ignored
This behavior occurs only if the CPU supports only emac but not explicitly mac (but emac is a superset of mac).
Nick Clifton [Tue, 26 Sep 2017 09:07:23 +0000 (10:07 +0100)]
Add README file for creating binutils releases
Thomas Preud'homme [Tue, 26 Sep 2017 08:57:18 +0000 (09:57 +0100)]
Fix FAILs in compare-sections.exp
compare-sections.exp has two cases that are not handled appropriately:
1) value read with msb set
2) error while patching that section
This patch adapts the "get value of read-only section" test to print
the value as an unsigned integer to fix 1) and test for the error
message to not set the written variable if read-only section cannot
be written to so as to solve 2).
2017-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
Pedro Alves <palves@redhat.com>
gdb/testsuite/
* gdb.base/compare-sections.exp (get value of read-only section): Read
as unsigned value.
(corrupt read-only section): Likewise and don't set written if patching
failed.
Alan Modra [Tue, 26 Sep 2017 01:58:04 +0000 (11:28 +0930)]
PR21732, String-concatenated message can not be translated
Preprocessor tokens like DWARF_VMA_FMT and BFD_VMA_FMT are not
understood by gettext, and cause the translation string to be
truncated. Even if it were not truncated, we wouldn't want a value
that changes depending on host or configure options to be put in a
translation string.
PR 21732
* dwarf.c (READ_ULEB): Don't use DWARF_VMA_FMT in translated string.
(READ_SLEB): Likewise.
* readelf.c (bfd_vmatoa): New function.
(get_data, get_dynamic_data): Use it for printing error messages.
Tom Tromey [Sat, 23 Sep 2017 21:54:36 +0000 (15:54 -0600)]
Remove the last cleanup from regcache.c
This removes the last cleanup from regcache.c by changing one function
to use std::string.
gdb/ChangeLog
2017-09-25 Tom Tromey <tom@tromey.com>
* regcache.c (regcache::dump): Use string_printf.
Tom Tromey [Sat, 23 Sep 2017 21:53:30 +0000 (15:53 -0600)]
Remove make_cleanup_regcache_invalidate
This removes make_cleanup_regcache_invalidate in favor of a simple
RAII class that handles register invalidation.
gdb/ChangeLog
2017-09-25 Tom Tromey <tom@tromey.com>
* regcache.c (class regcache_invalidator): New.
(struct register_to_invalidate): Remove.
(make_cleanup_regcache_invalidate): Remove.
(regcache::raw_write): Use regcache_invalidator.
Tom Tromey [Sat, 23 Sep 2017 21:34:30 +0000 (15:34 -0600)]
Remove make_cleanup_regcache_xfree
This removes make_cleanup_regcache_xfree in favor of using
std::unique_ptr as the return type of frame_save_as_regcache.
gdb/ChangeLog
2017-09-25 Tom Tromey <tom@tromey.com>
* spu-tdep.c (spu2ppu_sniffer): Update.
* regcache.h (make_cleanup_regcache_xfree): Don't declare.
* regcache.c (do_regcache_xfree, make_cleanup_regcache_xfree):
Remove.
* ppc-linux-tdep.c (ppu2spu_sniffer): Update.
* mi/mi-main.c (mi_cmd_data_list_changed_registers): Update.
* frame.h (frame_save_as_regcache): Return std::unique_ptr.
* frame.c (frame_save_as_regcache): Return std::unique_ptr.
(frame_pop): Update.
Tom Tromey [Sat, 23 Sep 2017 20:41:07 +0000 (14:41 -0600)]
Remove regcache_xfree
This removes regcache_xfree in favor of plain "delete".
gdb/ChangeLog
2017-09-25 Tom Tromey <tom@tromey.com>
* spu-tdep.c (spu2ppu_dealloc_cache): Use delete.
* regcache.h (regcache_xfree): Don't declare.
* regcache.c (regcache_xfree): Remove.
(do_regcache_xfree): Use delete.
* ppc-linux-tdep.c (ppu2spu_dealloc_cache): Use delete.
* linux-fork.c (free_fork): Use delete.
(fork_save_infrun_state): Likewise.
* jit.c (jit_dealloc_cache): Use delete.
* infrun.c (discard_infcall_suspend_state): Use delete.
Tom Tromey [Sat, 23 Sep 2017 20:39:56 +0000 (14:39 -0600)]
Remove regcache_xmalloc
This patch removes regcache_xmalloc in favor of plain "new".
gdb/ChangeLog
2017-09-25 Tom Tromey <tom@tromey.com>
* regcache.h (regcache_xmalloc): Don't declare.
(regcache_raw_set_cached_value): Update comment.
* regcache.c (regcache_xmalloc): Remove.
* ppc-linux-tdep.c (ppu2spu_sniffer): Use new.
* jit.c (jit_frame_sniffer): Use new.
* frame.c (frame_save_as_regcache): Use new.
Alan Modra [Tue, 26 Sep 2017 00:08:26 +0000 (09:38 +0930)]
PR22205, .debug_line file table NULL filename
The PR22200 fuzzer testcase found one way to put NULLs into .debug_line
file tables. PR22205 finds another. This patch gives up on trying to
prevent NULL files in the file table and instead just copes with them.
Arguably, this is better than giving up and showing no info from
.debug_line. I've also fixed a case where the fairly recent DWARF5
support in handling broken DWARG could result in uninitialized memory
reads, and made a small tidy.
PR 22205
* dwarf2.c (concat_filename): Return "<unknown>" on NULL filename.
(read_formatted_entries): Init "fe".
(decode_line_info <DW_LNE_define_file>): Use line_info_add_file_name.
Alan Modra [Tue, 26 Sep 2017 00:02:18 +0000 (09:32 +0930)]
PR22204, Lack of DW_LNE_end_sequence causes "infinite" loop
PR 22204
* dwarf2.c (decode_line_info): Ensure line_ptr stays within
bounds in inner loop.
GDB Administrator [Tue, 26 Sep 2017 00:00:21 +0000 (00:00 +0000)]
Automatic date update in version.in
H.J. Lu [Mon, 25 Sep 2017 21:07:01 +0000 (14:07 -0700)]
Free memory returned from bfd_get_synthetic_symtab
PR binutils/22203
* nm.c (display_rel_file): Free memory returned from
bfd_get_synthetic_symtab.
Andreas Arnez [Mon, 25 Sep 2017 14:02:24 +0000 (16:02 +0200)]
S390: Document guarded-storage register support
This documents the newly added support for guarded-storage registers on
IBM z.
gdb/ChangeLog:
* NEWS: Advertise support for guarded-storage registers on IBM z.
gdb/doc/ChangeLog:
* gdb.texinfo (S/390 and System z Features): Document the new
features org.gnu.gdb.s390.gs and org.gnu.gdb.s390.gsbc.
Andreas Arnez [Mon, 25 Sep 2017 14:02:23 +0000 (16:02 +0200)]
S390: Add guarded-storage register support to gdbserver
Enable gdbserver to deal with the new guarded-storage register sets.
gdb/gdbserver/ChangeLog:
* configure.srv (s390*-*-linux*): Add s390-gs-linux64.o and
s390x-gs-linux64.o to srv_regobj. Add s390-gs-linux64.xml,
s390x-gs-linux64.xml, s390-gs.xml, and s390-gsbc.xml to
srv_xmlfiles. Add s390-gs-linux64-ipa.o and
s390x-gs-linux64-ipa.o to ipa_obj.
* linux-s390-low.c (HWCAP_S390_GS): New define.
(s390_fill_gs, s390_store_gs, s390_fill_gsbc, s390_store_gsbc):
New functions.
(s390_regsets): Add regsets for NT_S390_GS_CB and NT_S390_GS_BC.
(s390_arch_setup): Check for guarded-storage support and choose
appropriate tdesc.
(initialize_low_arch): Invoke init_registers_s390_gs_linux64 and
init_registers_s390x_gs_linux64.
* linux-s390-tdesc.h (enum s390_linux_tdesc) <S390_TDESC_GS>: New
enum value.
(init_registers_s390x_gs_linux64, tdesc_s390x_gs_linux64)
(init_registers_s390_gs_linux64, tdesc_s390_gs_linux64): Declare.
Andreas Arnez [Mon, 25 Sep 2017 14:02:23 +0000 (16:02 +0200)]
S390: Add guarded-storage register support to GDB
Recognize targets with the new guarded-storage feature and then present
the guarded-storage registers and the Linux-specific guarded-storage
broadcast control block appropriately.
gdb/ChangeLog:
* s390-linux-nat.c (have_regset_gs): New static variable.
(s390_linux_fetch_inferior_registers): Handle guarded-storage
control block and guarded-storage broadcast control regsets.
(s390_read_description): Detect whether the target has
guarded-storage support, return appropriate tdesc.
* s390-linux-tdep.c (features/s390-gs-linux64.c): New include.
(features/s390x-gs-linux64.c): Likewise.
(struct gdbarch_tdep) <have_gs>: New field.
(s390_regmap_gs, s390_regmap_gsbc, s390_gs_regset)
(s390_gsbc_regset): New variables.
(s390_iterate_over_regset_sections): Iterate over s390_gs_regset
and s390_gsbc_regset, if applicable.
(s390_core_read_description): Check whether core file was from a
target with guarded-storage support; include appropriate regsets.
(s390_gdbarch_init): Add registers for guarded-storage support.
(_initialize_s390_tdep): Initialize new target descriptions that
include registers for guarded-storage support.
* s390-linux-tdep.h (HWCAP_S390_GS, S390_GSD_REGNUM)
(S390_GSSM_REGNUM, S390_GSEPLA_REGNUM)
(S390_BC_GSD_REGNUM, S390_BC_GSSM_REGNUM): New defines.
(S390_NUM_REGS): Adjust macro definition.
(s390_gs_regset, s390_gsbc_regset, tdesc_s390_gs_linux64)
(tdesc_s390x_gs_linux64): New declarations.
Andreas Arnez [Mon, 25 Sep 2017 14:02:23 +0000 (16:02 +0200)]
S390: Add guarded-storage register definitions and tdescs
Newer Linux kernel versions offer two new register sets in support of the
z/Architecture's guarded storage facility. This patch adds XML
descriptions and the respective autogenerated .c and .dat files for
s390/s390x targets with this feature.
gdb/ChangeLog:
* features/s390-gs-linux64.xml: New file.
* features/s390-gs.xml: New file.
* features/s390-gsbc.xml: New file.
* features/s390x-gs-linux64.xml: New file.
* features/Makefile (WHICH): Add s390-gs-linux64 and
s390x-gs-linux64.
(s390-gs-linux64-expedite, s390x-gs-linux64-expedite): New macros.
(XMLTOC): Add s390-gs-linux64.xml and s390x-linux64.xml.
* features/s390-gs-linux64.c: New generated file.
* features/s390x-gs-linux64.c: New file.
* regformats/s390-gs-linux64.dat: New file.
* regformats/s390x-gs-linux64.dat: New file.
Alan Modra [Mon, 25 Sep 2017 10:50:38 +0000 (20:20 +0930)]
PR22202, buffer overflow in parse_die
There was a complete lack of sanity checking in dwarf1.c
PR 22202
* dwarf1.c (parse_die): Sanity check pointer against section limit
before dereferencing.
(parse_line_table): Likewise.
Alan Modra [Mon, 25 Sep 2017 10:16:34 +0000 (19:46 +0930)]
PR22201, DW_AT_name with out of bounds reference
DW_AT_name ought to always have a string value.
PR 22201
* dwarf2.c (scan_unit_for_symbols): Ignore DW_AT_name unless it
has string form.
(parse_comp_unit): Likewise.
Alan Modra [Mon, 25 Sep 2017 09:33:46 +0000 (19:03 +0930)]
PR22200, DWARF5 .debug_line sanity check
The format_count entry can't be zero unless the count is also zero.
PR 22200
* dwarf2.c (read_formatted_entries): Error on format_count zero.
Sergio Durigan Junior [Thu, 21 Sep 2017 15:46:48 +0000 (11:46 -0400)]
Initialize 'imm' on opcodes/aarch64-opc.c:expand_fp_imm (and fix breakage on mingw)
Hi,
While compiling GDB using a mingw compiler from Fedora 26:
../gdb/configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 \
--disable-binutils --disable-ld --disable-gold --disable-gas --disable-sim \
--disable-gprof --enable-targets=all
I stumbled upon a simple occurrence of -Werror=maybe-uninitialized:
../../gdb/opcodes/aarch64-opc.c: In function 'expand_fp_imm':
../../gdb/opcodes/aarch64-opc.c:2880:10: error: 'imm' may be used uninitialized in this function [-Werror=maybe-uninitialized]
return imm;
^~~
It is the compiler's fault, because this function always assigns to
'imm' if the necessary conditions are met, and it calls "assert (0)"
otherwise, but I thought it'd be clearer to have 'imm' explicitly set
to zero anyway.
opcodes/ChangeLog:
2017-09-21 Sergio Durigan Junior <sergiodj@redhat.com>
* aarch64-opc.c (expand_fp_imm): Initialize 'imm'.
GDB Administrator [Mon, 25 Sep 2017 00:00:24 +0000 (00:00 +0000)]
Automatic date update in version.in
Alan Modra [Sun, 24 Sep 2017 12:06:18 +0000 (21:36 +0930)]
PR22197, buffer overflow in bfd_get_debug_link_info_1
PR 22197
* opncls.c (bfd_get_debug_link_info_1): Properly check that crc is
within section bounds.
Alan Modra [Sun, 24 Sep 2017 07:40:14 +0000 (17:10 +0930)]
PR22191, memory leak in dwarf2.c
table->sequences is a linked list before it is replaced by a bfd_alloc
array in sort_line_sequences.
PR 22191
* dwarf2.c (decode_line_info): Properly free line sequences on error.
Alan Modra [Sun, 24 Sep 2017 05:07:16 +0000 (14:37 +0930)]
PR22187, infinite loop in find_abstract_instance_name
This patch prevents the simple case of infinite recursion in
find_abstract_instance_name by ensuring that the attributes being
processed are not the same as the previous call.
The patch also does a little cleanup, and leaves in place some changes
to the nested_funcs array that I made when I wrongly thought looping
might occur in scan_unit_for_symbols.
PR 22187
* dwarf2.c (find_abstract_instance_name): Add orig_info_ptr and
pname param. Return status. Make name const. Don't abort,
return an error. Formatting. Exit if current info_ptr matches
orig_info_ptr. Update callers.
(scan_unit_for_symbols): Start at nesting_level of zero. Make
nested_funcs an array of structs for extensibility. Formatting.
Alan Modra [Sun, 24 Sep 2017 05:06:48 +0000 (14:36 +0930)]
PR22186, divide-by-zero in decode_line_info
PR 22186
* dwarf2.c (decode_line_info): Fail on lh.line_range of zero
rather than dividing by zero.
Alan Modra [Sun, 24 Sep 2017 05:06:16 +0000 (14:36 +0930)]
PR22169, heap-based buffer overflow in read_1_byte
The .debug_line header length field doesn't include the length field
itself, ie. it's the size of the rest of .debug_line.
PR 22169
* dwarf2.c (decode_line_info): Correct .debug_line unit_length check.
Alan Modra [Sun, 24 Sep 2017 05:05:33 +0000 (14:35 +0930)]
PR22167, NULL pointer dereference in scan_unit_for_symbols
PR 22167
* dwarf2.c (scan_unit_for_symbols): Check u.blk->data is non-NULL.
Alan Modra [Sun, 24 Sep 2017 05:04:57 +0000 (14:34 +0930)]
PR22166, SHT_GNU_verneed memory allocation
The sanity check covers the previous minimim size, plus that the size
is at least enough for sh_info verneed entries.
Also, since we write all verneed fields or exit with an error, there
isn't any need to zero the memory allocated for verneed entries.
PR 22166
* elf.c (_bfd_elf_slurp_version_tables): Test sh_info on
SHT_GNU_verneed section for sanity. Don't zalloc memory for
verref.
GDB Administrator [Sun, 24 Sep 2017 00:00:26 +0000 (00:00 +0000)]
Automatic date update in version.in
Tom Tromey [Sat, 23 Sep 2017 20:00:21 +0000 (14:00 -0600)]
Removed unused declaration
An earlier patch of mine removed make_cleanup_override_quit_handler,
but neglected to remove the declaration. This patch removes it.
Tested by rebuilding. I'm committing this as obvious.
ChangeLog
2017-09-23 Tom Tromey <tom@tromey.com>
* defs.h (make_cleanup_override_quit_handler): Don't declare.