aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-07-17Remove TUI data window special caseTom Tromey4-13/+15
The TUI has a couple of special cases for updating the data window: one in tui_rl_other_windowand one in tui_set_focus_command. As part of the project to remove references to globals, I wanted to remove these calls; but when I did, some simple operations (like "C-x o") would cause the register window to blank. This fixes the underlying problem by arranging for the data window's refresh_window method to call the superclass method first, and then to refresh the child windows. Then the special cases can be removed. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui.c (tui_rl_other_window): Update. * tui/tui-wingeneral.c (tui_data_window::refresh_window): Call superclass method first. Always iterate over regs_content. (tui_unhighlight_win, tui_highlight_win): Use refresh_window method. * tui/tui-win.c (tui_set_focus_command): Update.
2019-07-17Remove tui_set_focusTom Tromey2-11/+9
tui_set_focus_command is a simple wrapper for tui_set_focus, so rename the latter and remove the wrapper function. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-win.c (tui_set_focus_command): Rename from tui_set_focus. Call tui_enable. (tui_set_focus_command): Remove.
2019-07-17Merge refresh and refresh_window methodsTom Tromey5-29/+29
Earlier refactorings introduced the refresh and refresh_window methods, following the previous TUI code. However, these methods are essentially the same, so this patch merges them. It also removes some redundant refresh_window calls, because the execution window is updated automatically by the corresponding source (or disassembly) window. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.c (tui_show_exec_info_content): Don't call refresh_window. * tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Call touchwin. (tui_data_window::refresh_window): Call refresh_window on data items. Always call superclass refresh_window. (tui_win_info::refresh): Remove. (tui_source_window_base::refresh_window): Update. (tui_refresh_all): Update. * tui/tui-layout.c (show_source_disasm_command): Remove call to refresh_window. (show_source_or_disasm_and_command): Likewise. * tui/tui-data.h (struct tui_win_info) <refresh>: Remove. (struct tui_source_window_base) <refresh>: Likewise.
2019-07-17Remove tui_source_window::content_in_useTom Tromey4-5/+10
Now that source window clearing has been simplified, we don't need a special flag to say whether the source window is in use -- we can simply check whether the contents are set. This patch implements this idea, removing the content_in_use field. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.c (tui_clear_source_content) (tui_show_source_content): Update. * tui/tui-source.c (tui_source_window::showing_source_p): Check whether content is empty. * tui/tui-data.h (struct tui_source_window_base) <content_in_use>: Remove.
2019-07-17Simplify source window clearingTom Tromey4-73/+8
When a TUI source window is empty, it displays a "No Source Available" message. The function tui_set_source_content_nil also made sure to put this message into the window's "content" field. However, I believe this isn't really necessary. Instead, it's simpler to just empty the contents and let curses handle the refreshing. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.c (tui_erase_source_content): Clear the window's contents. * tui/tui-source.h (tui_set_source_content_nil): Don't declare. * tui/tui-source.c (tui_set_source_content_nil): Remove.
2019-07-17Remove UNDEFINED_ITEM define from TUITom Tromey2-2/+6
The TUI defined UNDEFINED_ITEM, but only used it in a single spot. I think this isn't very useful, so this removes the define. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-data.h (UNDEFINED_ITEM): Remove define. (struct tui_data_item_window): Update.
2019-07-17Remove unused TUI definesTom Tromey2-5/+6
This removes some #defines that were unused in the TUI. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-data.h (MAX_CONTENT_COUNT, TUI_NULL_STR) (DEFAULT_HISTORY_COUNT, WITH_LOCATOR, NO_LOCATOR): Remove defines.
2019-07-17Remove unused parameter from two TUI functionsTom Tromey6-43/+51
The "display_prompt" parameter of tui_erase_source_content and tui_clear_source_content was never passed the NO_EMPTY_SOURCE_PROMPT value, so remove the parameter. Once this is done, the EMPTY_SOURCE_PROMPT and NO_EMPTY_SOURCE_PROMPT defines are unused, so remove those as well. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.h (tui_erase_source_content) (tui_clear_source_content): Remove "display_prompt" parameter. * tui/tui-winsource.c (tui_update_source_window_as_is) (tui_update_source_windows_with_addr): Update. (tui_clear_source_content): Remove "display_prompt" parameter. (tui_erase_source_content): Likewise. Simplify. (tui_show_source_content): Update. * tui/tui-win.c (tui_resize_all, tui_adjust_win_heights): Update. * tui/tui-stack.c (tui_show_frame_info): Update. * tui/tui-data.h (EMPTY_SOURCE_PROMPT, NO_EMPTY_SOURCE_PROMPT): Remove defines.
2019-07-17Add win_info parameter to tui_set_disassem_contentTom Tromey4-13/+22
This adds a win_info parameter to tui_set_disassem_content, removing uses of the TUI_DISASM_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.c (tui_update_source_window_as_is): Update. * tui/tui-disasm.h (tui_set_disassem_content): Add win_info parameter. * tui/tui-disasm.c (tui_set_disassem_content): Add win_info parameter.
2019-07-17Move content_in_use to tui_source_window classTom Tromey7-17/+36
From scanning the source now, it's clear that the content_in_use field is only used for the source window. This patch moves the field there, and changes it to be a bool at the same time. (A future patch will clean this up further, removing the field entirely.) gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.c (tui_clear_source_content) (tui_show_source_content, tui_show_exec_info_content) (tui_clear_exec_info_content): Update. * tui/tui-stack.c (tui_show_locator_content): Update. (tui_show_frame_info): Update. * tui/tui-source.h (tui_source_window): Don't declare. * tui/tui-source.c (tui_source_window::showing_source_p): Rename from tui_source_is_displayed. * tui/tui-data.h (struct tui_gen_win_info) <content_in_use>: Remove field. (struct tui_source_window_base) <content_in_use>: New field. Now bool. (struct tui_source_window) <showing_source_p>: New method. (TUI_SRC_WIN): Change cast. * tui/tui-data.c (tui_initialize_static_data): Update.
2019-07-17Introduce tui_source_window_base::location_matches_p methodTom Tromey5-10/+39
This introduces the location_matches_p method, removing a spot that explicitly examines a window's type. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.c (tui_update_breakpoint_info): Use location_matches_p. * tui/tui-source.c (tui_source_window::location_matches_p): New method. * tui/tui-disasm.c (tui_disasm_window::location_matches_p): New method. * tui/tui-data.h (struct tui_source_window_base) <location_matches_p>: New method. (struct tui_source_window, struct tui_disasm_window) <location_matches_p>: Likewise.
2019-07-17Remove tui_set_win_heightTom Tromey2-11/+7
tui_set_win_height_command is just a simple wrapper for tui_set_win_height, so rename the latter and remove the wrapper. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-win.c (tui_set_win_height_command): Rename from tui_set_win_height. (tui_set_win_height_command): Remove.
2019-07-17Make source windows be self-updatingTom Tromey4-18/+43
This changes the TUI source window to register itself on the source_styling_changed observable, and removes a bit of code from tui-hooks.c. This reduces the number of uses of the TUI_SRC_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-source.c (tui_source_window): New constructor. Add observer. (~tui_source_window): New destructor. (tui_source_window::style_changed): New method. * tui/tui-hooks.c (tui_redisplay_source): Remove. (tui_attach_detach_observers): Update. * tui/tui-data.h (struct tui_source_window): Make constructor not inline. Add destructor. (struct tui_source_window) <style_changed>: New method. <m_observable>: New member.
2019-07-17Fix comment typosTom Tromey3-2/+7
This fixes a couple of comment typos that I noticed. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-data.c (tui_clear_source_windows_detail): Fix typo. * tui/tui-win.c (tui_resize_all): Fix typo.
2019-07-17Introduce TUI window iteratorTom Tromey7-59/+116
This introduces an iterator class and a range adapter to make it simpler to iterate over TUI windows. One explicit iteration remains, in tui-win.c, because that spot is deleting windows as well. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-wingeneral.h (tui_refresh_all): Update. * tui/tui-wingeneral.c (make_all_visible): Use foreach. (tui_refresh_all): Remove "list" parameter. Use foreach. * tui/tui-win.c (window_name_completer): Use foreach. (tui_refresh_all_win, tui_rehighlight_all, tui_all_windows_info) (update_tab_width): Likewise. * tui/tui-layout.c (show_layout): Update. * tui/tui-data.h (class tui_window_iterator): New. (struct all_tui_windows): New. * tui/tui-data.c (tui_partial_win_by_name): Use foreach.
2019-07-17Minor tui_reg_next / tui_reg_prev cleanupTom Tromey2-10/+17
This changes tui_reg_next and tui_reg_prev so that they don't need to reference the TUI_DATA_WIN globals. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-regs.c (tui_reg_next, tui_reg_prev): Add "current_group" parameter. Don't reference globals. (tui_reg_command): Update.
2019-07-17Simplify tui_show_registersTom Tromey2-11/+10
tui_show_registers keeps a local status variable, but it is not actually needed. This rearranges the function to remove the variable. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-regs.c (tui_show_registers): Simplify.
2019-07-17Parameterize tui_show_register_group with windowTom Tromey2-11/+18
This changes tui_show_register_group not to reference the TUI_DATA_WIN global, instead leaving that to its caller. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-regs.c (tui_show_registers): Update. (tui_show_register_group): Add win_info parameter.
2019-07-17Introduce tui_data_window::display_reg_element_at_line methodTom Tromey3-16/+24
This changes tui_display_reg_element_at_line to be a method on tui_data_window, allowing for the removal of some uses of the TUI_DATA_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-regs.c (tui_data_window::display_reg_element_at_line): Rename from tui_display_reg_element_at_line. (tui_data_window::display_registers_from_line): Update. * tui/tui-data.h (struct tui_data_window) <display_reg_element_at_line>: New method.
2019-07-17Introduce two more tui_data_window methodsTom Tromey5-36/+52
This changes tui_display_registers_from and tui_display_registers_from_line to be methods on tui_data_window, allowing for the removal of more uses of the TUI_DATA_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-regs.h (tui_display_registers_from) (tui_display_registers_from_line): Don't declare. * tui/tui-windata.c (tui_data_window::display_all_data) (tui_data_window::refresh_all) (tui_data_window::do_scroll_vertical): Update. * tui/tui-regs.c (tui_data_window::display_registers_from): Rename from tui_display_registers_from. (tui_display_reg_element_at_line): Update. (tui_data_window::display_registers_from_line): Rename from tui_display_registers_from_line. * tui/tui-data.h (struct tui_data_window) <display_registers_from, display_registers_from_line>: New methods.
2019-07-17Introduce tui_data_window::erase_data_content methodTom Tromey5-17/+26
This changes tui_erase_data_content to be a method on tui_data_window, allowing for the removal of some uses of the TUI_DATA_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-windata.h (tui_erase_data_content): Don't declare. * tui/tui-windata.c (tui_data_window::erase_data_content): Rename from tui_erase_data_content. (tui_data_window::display_all_data) (tui_data_window::refresh_all) (tui_data_window::do_scroll_vertical): Update. * tui/tui-regs.c (tui_show_registers): Update. * tui/tui-data.h (struct tui_data_window) <erase_data_content>: New method.
2019-07-17Introduce tui_data_window::delete_data_content_windows methodTom Tromey4-7/+21
This changes tui_delete_data_content_windows to be a method on tui_data_window, removing some uses of the TUI_DATA_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-windata.h (tui_delete_data_content_windows): Don't declare. * tui/tui-windata.c (tui_data_window::delete_data_content_windows): Rename from tui_delete_data_content_windows. (tui_data_window::display_all_data) (tui_data_window::do_scroll_vertical): Update. * tui/tui-data.h (struct tui_data_window) <delete_data_content_windows>: New method.
2019-07-17Don't declare unimplemented functionsTom Tromey3-2/+5
A couple of functions were declared but never defined. This removes the declarations. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-windata.h (tui_refresh_data_win): Don't declare. * tui/tui-regs.h (tui_first_reg_element_inline): Don't declare.
2019-07-17Introduce tui_data_window::display_all_data methodTom Tromey7-9/+23
This changes tui_display_all_data to be a method on tui_data_window. This helps cluster uses of the TUI_DATA_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-windata.h (tui_display_all_data): Don't declare. * tui/tui-windata.c (tui_data_window::display_all_data): Rename from tui_display_all_data. * tui/tui-win.c (tui_data_window::do_make_visible_with_new_height): Update. * tui/tui-regs.c (tui_show_registers): Update. * tui/tui-layout.c (tui_set_layout): Update. * tui/tui-data.h (struct tui_data_window) <display_all_data>: New method.
2019-07-17Remove tui_display_data_fromTom Tromey3-24/+18
tui_display_data_from is only called from a single place. Inlining it there lets us remove some uses of the TUI_DATA_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-windata.h (tui_display_data_from): Don't declare. * tui/tui-windata.c (tui_display_data_from): Remove. (tui_data_window::refresh_all): Update.
2019-07-17Remove tui_display_data_from_lineTom Tromey5-37/+26
tui_display_data_from_line is just a wrapper for tui_display_registers_from_line, so remove it. Also, nothing passed 0 as the "force_display" parameter to tui_display_registers_from_line, so remove that parameter as well. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-windata.h (tui_display_data_from_line): Don't declare. * tui/tui-windata.c (tui_display_data_from_line): Remove. (tui_display_data_from, tui_data_window::do_scroll_vertical): Call tui_display_registers_from_line. * tui/tui-regs.h (tui_display_registers_from_line): Update. * tui/tui-regs.c (tui_display_registers_from_line): Remove "force_display" parameter.
2019-07-17Introduce tui_data_window::first_reg_element_no_inlineTom Tromey4-10/+22
This changes tui_first_reg_element_no_inline to be a method on tui_data_window. This again moves uses of the TUI_DATA_WIN global from this function into other functions that are already using the global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-regs.h (tui_first_reg_element_no_inline): Don't declare. * tui/tui-regs.c (tui_data_window::first_reg_element_no_inline): Rename from tui_first_reg_element_no_inline. (tui_display_reg_element_at_line) (tui_display_registers_from_line): Update. * tui/tui-data.h (struct tui_data_window) <first_reg_element_no_inline>: New method.
2019-07-17Introduce tui_data_window::line_from_reg_element_no methodTom Tromey5-10/+23
This changes tui_line_from_reg_element_no to be a method on tui_data_window, allowing for the removal of some uses of the TUI_DATA_WIN global. (Actually, in this particular patch, the number of uses is not decreased, but rather the uses are moved to spots that are already using the global, i.e., increasing the clustering.) gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-windata.c (tui_display_data_from) (tui_data_window::do_scroll_vertical): Update. * tui/tui-regs.h (tui_line_from_reg_element_no): Don't declare. * tui/tui-regs.c (tui_data_window::line_from_reg_element_no): Rename from tui_line_from_reg_element_no. (tui_display_registers_from_line): Update. * tui/tui-data.h (struct tui_data_window) <line_from_reg_element_no>: New method.
2019-07-17Introduce tui_data_window::last_regs_line_no methodTom Tromey4-10/+22
This changes tui_last_regs_line_no into a method on tui_data_window, allowing the removal of uses of the TUI_DATA_WIN global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-regs.h (tui_last_regs_line_no): Don't declare. * tui/tui-regs.c (tui_data_window::last_regs_line_no): Rename from tui_last_regs_line_no. (tui_display_reg_element_at_line) (tui_display_registers_from_line): Update. * tui/tui-data.h (struct tui_data_window) <last_regs_line_no>: New method.
2019-07-17Remove deleted breakpoint from TUI displayTom Tromey4-22/+44
PR tui/24722 points out that deleting a breakpoint does not cause the "b" to be removed from the breakpoint display. The issue here was that the breakpoint still exists at the moment the breakpoint-deleted observer is notified. This fixes the problem by specially handling the case where a breakpoint is being removed. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> PR tui/24722: * tui/tui-winsource.h (tui_update_all_breakpoint_info) (tui_update_breakpoint_info): Add "being_deleted" parameter. * tui/tui-winsource.c (tui_update_source_window_as_is): Update. (tui_update_all_breakpoint_info): Add "being_deleted" parameter. (tui_update_breakpoint_info): Likewise. * tui/tui-hooks.c (tui_event_create_breakpoint) (tui_event_delete_breakpoint, tui_event_modify_breakpoint): Update.
2019-07-17Consolidate "if"s in tui_show_frame_infoTom Tromey2-35/+31
tui_show_frame_info has two parallel "if"s with the same condition and no intervening code. The second "if" perhaps wasn't obviously identical, but earlier refactorings made it clearer, by pointing out that only source and disassembly windows can be handled here. This merges the two statements. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-stack.c (tui_show_frame_info): Consolidate "if"s.
2019-07-17Remove some uses of TUI_WIN_SRCTom Tromey4-27/+40
This adds a 'win_info' parameter to a couple of functions. This reduces the number of references to the TUI_WIN_SRC global. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-winsource.c (tui_update_source_window_as_is) (tui_update_source_windows_with_addr): Update. * tui/tui-source.h (tui_set_source_content) (tui_show_symtab_source): Add "win_info" parameter. * tui/tui-source.c (tui_set_source_content): Add "win_info" parameter. (tui_show_symtab_source): Likewise.
2019-07-17Check can_highlight in tui_check_and_display_highlight_if_neededTom Tromey2-1/+6
tui_check_and_display_highlight_if_needed currently checks the window's type; but this can be replaced with a check of "can_highlight", making it more polymorphically-correct. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-wingeneral.c (tui_check_and_display_highlight_if_needed): Check can_highlight.
2019-07-17Introduce can_scroll methodTom Tromey3-4/+21
This introduces a "can_scroll" method, removing a spot that explicitly checks a window's type. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-data.h (struct tui_win_info) <can_scroll>: New method. (struct tui_cmd_window) <can_scroll>: New method. * tui/tui-command.c (tui_dispatch_ctrl_char): Use can_scroll method.
2019-07-17Rename field_int to field_signedTom Tromey33-156/+220
This renames ui_out::field_int to field_signed, and field_fmt_int to field_fmt_signed; and changes the type of the "value" parameter from int to LONGEST. Tested by the buildbot. gdb/ChangeLog 2019-07-17 Tom Tromey <tromey@adacore.com> * ui-out.h (class ui_out) <field_signed, field_fmt_signed, do_field_signed>: Rename. Change type of "value". * ui-out.c (ui_out::field_signed): Rename from field_int. Change type of "value". (ui_out::field_fmt_signed): Rename from field_fmt_int. Change type of "value". * tui/tui-out.h (class tui_ui_out) <do_field_signed>: Rename from do_field_int. Change type of "value". * tui/tui-out.c (tui_ui_out::do_field_signed): Rename from do_field_int. Change type of "value". * tracepoint.c (trace_status_mi, tfind_1) (print_one_static_tracepoint_marker): Update. * thread.c (print_thread_info_1, print_selected_thread_frame): Update. * stack.c (print_frame, print_frame_info): Update. * spu-tdep.c (info_spu_signal_command, info_spu_dma_cmdlist): Update. * source.c (print_source_lines_base): Update. * skip.c (info_skip_command): Update. * record-btrace.c (btrace_ui_out_decode_error) (btrace_call_history_src_line): Update. * python/py-framefilter.c (py_print_single_arg, py_print_frame): Update. * progspace.c (print_program_space): Update. * mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Update. * mi/mi-out.h (class mi_ui_out) <do_field_signed>: Rename from do_field_int. Change type of "value". * mi/mi-out.c (mi_ui_out::do_table_begin) (mi_ui_out::do_table_header): Update. (mi_ui_out::do_field_signed): Rename from do_field_int. Change type of "value". * mi/mi-main.c (mi_cmd_thread_list_ids, print_one_inferior) (mi_cmd_data_list_changed_registers, output_register) (mi_cmd_data_read_memory, mi_load_progress) (mi_cmd_trace_frame_collected): Update. * mi/mi-interp.c (mi_on_normal_stop_1, mi_output_solib_attribs): Update. * mi/mi-cmd-var.c (print_varobj, mi_cmd_var_create) (mi_cmd_var_delete, mi_cmd_var_info_num_children) (mi_cmd_var_list_children, varobj_update_one): Update. * mi/mi-cmd-stack.c (mi_cmd_stack_info_depth) (mi_cmd_stack_list_args, list_arg_or_local): Update. * mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_file): Update. * inferior.c (print_inferior): Update. * gdb_bfd.c (print_one_bfd): Update. * disasm.c (gdb_pretty_print_disassembler::pretty_print_insn): Update. * darwin-nat-info.c (darwin_debug_regions_recurse): Update. * cli-out.h (class cli_ui_out) <do_field_signed>: Rename from do_field_int. Change type of "value". * cli-out.c (cli_ui_out::do_field_signed): Rename from do_field_int. Change type of "value". * breakpoint.c (watchpoint_check, print_breakpoint_location) (print_one_breakpoint_location, print_it_catch_fork) (print_one_catch_fork, print_it_catch_vfork) (print_one_catch_vfork, print_it_catch_solib) (print_it_catch_exec, print_it_ranged_breakpoint) (print_mention_watchpoint, print_mention_masked_watchpoint) (bkpt_print_it, update_static_tracepoint): Update. * break-catch-throw.c (print_it_exception_catchpoint): Update. * break-catch-syscall.c (print_it_catch_syscall): Update. * ada-tasks.c (print_ada_task_info): Update. * ada-lang.c (print_it_exception, print_mention_exception): Update.
2019-07-17gdb: Remove a non-const reference parameterAndrew Burgess8-48/+43
Non-const reference parameter should be avoided according to the GDB coding standard: https://sourceware.org/gdb/wiki/Internals%20GDB-C-Coding-Standards#Avoid_non-const_reference_parameters.2C_use_pointers_instead This commit updates the gdbarch method gdbarch_stap_adjust_register, and the one implementation i386_stap_adjust_register to avoid using a non-const reference parameter. I've also removed the kfail from the testsuite for bug 24541, as this issue is now resolved. gdb/ChangeLog: PR breakpoints/24541 * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * gdbarch.sh: Adjust return type and parameter types for 'stap_adjust_register'. (i386_stap_adjust_register): Adjust signature and return new register name. * stap-probe.c (stap_parse_register_operand): Adjust use of 'gdbarch_stap_adjust_register'. gdb/testsuite/ChangeLog: PR breakpoints/24541 * gdb.mi/mi-catch-cpp-exceptions.exp: Remove kfail due to 24541.
2019-07-17Remove a VEC from s390-linux-nat.cTom Tromey2-48/+49
This removes a use of VEC fro s390-linux-nat.c, replacing it with std::vector. Tested using the Fedora-s390x-m64 buildbot builder. gdb/ChangeLog 2019-07-17 Tom Tromey <tromey@adacore.com> * s390-linux-nat.c (s390_watch_area): Remove typedef. Don't declare VEC. (struct s390_debug_reg_state) <watch_areas, break_areas>: Now std::vector. (struct s390_process_info): Add initializers. (s390_add_process): Use new. (s390_linux_nat_target::low_forget_process): Use delete. (s390_linux_nat_target::low_new_fork) (s390_linux_nat_target::stopped_by_watchpoint) (s390_linux_nat_target::low_prepare_to_resume) (s390_linux_nat_target::insert_watchpoint) (s390_linux_nat_target::insert_hw_breakpoint) (s390_linux_nat_target::remove_watchpoint) (s390_linux_nat_target::remove_hw_breakpoint): Update.
2019-07-17x86: replace "anymem" checks where possibleJan Beulich2-8/+22
Once operand parsing has completed, the simpler check of Operand_Mem can be used in places where i.types[] got passed to operand_type_check(). Note that this has shown a couple of omissions of adjusting i.flags[] when playing with i.op[] / i.types[] / i.tm.operand_types[]. Not all of them get added here, just all of the ones needed in process_operands().
2019-07-17x86: drop stale Mem enumeratorJan Beulich3-4/+24
This was supposed to also be removed by c48dadc9a8 ('x86: drop "mem" operand type attribute'). It's odd enough that this hasn't caused build issues, considering the careful use of OTunused (apparently to avoid "missing initializer" warnings). To avoid such happening again introduce compile time consistency checks.
2019-07-17Automatic date update in version.inGDB Administrator1-1/+1
2019-07-16x86: make RegMem an opcode modifierJan Beulich8-16499/+20448
... instead of an operand type bit: It's an insn property, not an operand one. There's just one actual change to be made to the templates: Most are now required to have the (unswapped) destination go into ModR/M.rm, so VMOVD template needs its opcode adjusted accordingly and its operands swapped. {,V}MOVS{S,D}, otoh, are left alone in this regard, as otherwise generated code would differ from what we've been producing so far (which I don't think is wanted). Take the opportunity and add a missing IgnoreSize to pextrb (leading to an error in 16-bit mode), and take the liberty to once again drop stray IgnoreSize attributes from lines changed and neighboring related ones.
2019-07-16x86: fold SReg{2,3}Jan Beulich15-24263/+13987
They're the only exception to there generally being no mix of register kinds possible in an insn operand template, and there being two bits per operand for their representation is also quite wasteful, considering the low number of uses. Fold both bits and deal with the little bit of fallout. Also take the liberty and drop dead code trying to set REX_B: No segment register has RegRex set on it. Additionally I was quite surprised that PUSH/POP with the permitted segment registers is not covered by the test cases. Add the missing pieces.
2019-07-15Fix build for aarch64, arm, and riscv FreeBSD native targets.John Baldwin4-24/+30
Remove unused gdbarch argument to helper functions originally copied from mips-fbsd-nat.c. Include regcache.h previously included from defs.h via gdbarch.h. gdb/ChangeLog: * aarch64-fbsd-nat.c: Include regcache.h. (getregs_supplies, getfpregs_supplies): Remove unused gdbarch argument. (aarch64_fbsd_nat_target::fetch_registers) (aarch64_fbsd_nat_target::store_registers): Remove gdbarch variable. * arm-fbsd-nat.c, riscv-fbsd-nat.c: Likewise.
2019-07-15Add include of gdbarch.h.John Baldwin2-0/+5
gdb/ChangeLog: * fbsd-nat.c: Include gdbarch.h.
2019-07-16Automatic date update in version.inGDB Administrator1-1/+1
2019-07-15Fix a FIXME in mi-out.cTom Tromey2-4/+5
This removes a FIXME comment from mi_ui_out::do_field_int, by replacing a printf with a use of plongest. 2019-07-15 Tom Tromey <tromey@adacore.com> * mi/mi-out.c (mi_ui_out::do_field_int): Use plongest.
2019-07-15Introduce field_unsignedTom Tromey10-18/+74
This adds field_unsigned and changes various places using field_fmt with "%u" to use this instead. This also replaces an existing equivalent helper function in record-btrace.c. 2019-07-15 Tom Tromey <tromey@adacore.com> * mi/mi-out.h (class mi_ui_out) <do_field_unsigned>: Declare. * mi/mi-out.c (mi_ui_out::do_field_unsigned): New method. * cli-out.h (class cli_ui_out) <do_field_unsigned>: Declare. * cli-out.c (cli_ui_out::do_field_int): New method. * ui-out.c (ui_out::field_unsigned): New method. * symfile.c (generic_load): Use field_unsigned. (print_transfer_performance): Likewise. * record-btrace.c (ui_out_field_uint): Remove. (btrace_call_history_insn_range, btrace_call_history): Use field_unsigned. * disasm.c (gdb_pretty_print_disassembler::pretty_print_insn): Use field_unsigned. * ui-out.h (class ui_out) <field_unsigned>: New method. <do_field_unsigned>: Likewise.
2019-07-15Use field_string in more placesTom Tromey8-13/+24
This replaces uses of field_fmt with a "%s" format string to use field_string instead. Also, one use of "%9lx" is replaced with a call to phex_nz; the '9' is dropped as it is implicit in the field width. 2019-07-15 Tom Tromey <tromey@adacore.com> * mi/mi-main.c (list_available_thread_groups): Use field_string. * mi/mi-interp.c (mi_memory_changed): Use field_string. * target.c (flash_erase_command): Use field_string. * infrun.c (print_signal_received_reason): Use field_string. * i386-tdep.c (i386_mpx_print_bounds): Use field_string. * breakpoint.c (maybe_print_thread_hit_breakpoint): Use field_string. * ada-tasks.c (print_ada_task_info): Use field_string.
2019-07-15Use field_core_addr in more placesTom Tromey5-8/+17
This changes a few spots that use field_fmt to use field_core_addr instead. gdb/ChangeLog 2019-07-15 Tom Tromey <tromey@adacore.com> * target.c (flash_erase_command): Use field_core_addr. * symfile.c (generic_load): Use field_core_addr. * sparc64-linux-tdep.c (sparc64_linux_handle_segmentation_fault): Use field_core_addr. * i386-linux-tdep.c (i386_linux_handle_segmentation_fault): Use field_core_addr.
2019-07-15cpu,opcodes,gas: fix explicit arguments to eBPF ldabs instructionsJose E. Marchesi11-127/+119
This patch fixes the eBPF CPU description in order to reflect the right explicit arguments passed to the ldabs{b,h,w,dw} instructions, updates the corresponding GAS tests, and updates the BPF section of the GAS manual. cpu/ChangeLog: 2019-07-15 Jose E. Marchesi <jose.marchesi@oracle.com> * bpf.cpu (dlabs): New pmacro. (dlind): Likewise. opcodes/ChangeLog: 2019-07-15 Jose E. Marchesi <jose.marchesi@oracle.com> * bpf-desc.c: Regenerate. * bpf-opc.c: Likewise. * bpf-opc.h: Likewise. gas/ChangeLog: 2019-07-15 Jose E. Marchesi <jose.marchesi@oracle.com> * testsuite/gas/bpf/mem.s: ldabs instructions do not take a `src' register as an argument. * testsuite/gas/bpf/mem.d: Updated accordingly. * testsuite/gas/bpf/mem-be.d: Likewise. * doc/c-bpf.texi (BPF Opcodes): Update to reflect the correct explicit arguments to ldabs and ldind instructions.