Skip to content
Snippets Groups Projects
  1. Dec 23, 2019
    • Alan Modra's avatar
      ubsan: iq2000: left shift of negative value · 3e1056a1
      Alan Modra authored
      cpu/
      	* iq2000.cpu (f-offset): Avoid left shift of negative values.
      opcodes/
      	* iq2000-ibld.c: Regenerate.
      3e1056a1
    • Alan Modra's avatar
      ubsan: d30v: left shift cannot be represented in type 'long long' · 1a1e2852
      Alan Modra authored
      	* d30v-dis.c (extract_value): Make num param a uint64_t, constify
      	oper.  Use unsigned vars.
      	(print_insn): Make num var uint64_t.  Constify oper and remove now
      	unnecessary casts on extract_value calls.
      	(print_insn_d30v): Use unsigned vars.  Adjust printf formats.
      1a1e2852
    • Alan Modra's avatar
      Revise sleb128 and uleb128 reader · cd30bcef
      Alan Modra authored
      This patch catches and reports errors when reading leb128 values,
      addressing a FIXME in read_leb128.
      
      	* dwarf.h (read_leb128): Update prototype.
      	(report_leb_status): New inline function.
      	(SKIP_ULEB, SKIP_SLEB, READ_ULEB, READ_SLEB): Define.
      	* dwarf.c: Use above macros throughout file.  Formatting.
      	(read_leb128): Reorder params.  Add status return param.
      	Don't stop reading until finding terminator or end of data.
      	Detect loss of significant bits.  Sign extend only on
      	terminating byte.
      	(read_sleb128, read_uleb128): Delete functions.
      	(SKIP_ULEB, SKIP_SLEB, READ_ULEB, READ_SLEB): Delete macros.
      	(read_and_print_leb128): Rewrite.
      	(process_extended_line_op): Return a size_t.  Use size_t vars.
      	Adjust to suit new macros.  Add proper name size to "data" when
      	processing DW_LNE_define_file.
      	(process_abbrev_section): Adjust to suit new macros.
      	(decode_location_expression, skip_attr_bytes): Likewise.
      	(get_type_signedness): Likewise.
      	(read_and_display_attr_value): Likewise.  Consolidate block code.
      	(process_debug_info): Adjust to suit new macros.
      	(display_formatted_table, display_debug_lines_raw): Likewise.
      	(display_debug_lines_decoded): Likewise.  Properly check for end
      	of DW_LNS_extended_op.
      	(display_debug_macinfo): Adjust to suit new macros.
      	(get_line_filename_and_dirname, display_debug_macro): Likewise.
      	(display_view_pair_list): Likewise.  Don't back off when hitting
      	end of data.
      	(display_loc_list): Adjust to suit new macros.
      	(display_loclists_list, display_loc_list_dwo): Likewise.
      	(display_debug_rnglists_list, read_cie): Likewise.
      	(display_debug_frames): Likewise.
      	* readelf.c: Use new ULEB macros throughout file.
      	(read_uleb128): Delete.
      	(decode_arm_unwind_bytecode): Use read_leb128.
      	(decode_tic6x_unwind_bytecode): Likewise.
      	(display_tag_value): Adjust to suit new macros.
      	(display_arc_attribute, display_arm_attribute): Likewise.
      	(display_gnu_attribute, display_power_gnu_attribute): Likewise.
      	(display_s390_gnu_attribute, display_sparc_gnu_attribute): Likewise.
      	(display_mips_gnu_attribute, display_tic6x_attribute): Likewise.
      	(display_msp430x_attribute, display_msp430_gnu_attribute): Likewise.
      	(display_riscv_attribute, process_attributes): Likewise.
      cd30bcef
    • Alan Modra's avatar
      ubsan: wasm: shift is too large for 64-bit type 'bfd_vma' · 27c1c427
      Alan Modra authored
      bfd/
      	* wasm-module.c (wasm_read_leb128): Don't allow oversize shifts.
      	Catch value overflow.  Sign extend only on terminating byte.
      opcodes/
      	* wasm32-dis.c (wasm_read_leb128): Don't allow oversize shifts.
      	Catch value overflow.  Sign extend only on terminating byte.
      27c1c427
    • GDB Administrator's avatar
      Automatic date update in version.in · 09b0d8a7
      GDB Administrator authored
      09b0d8a7
  2. Dec 22, 2019
  3. Dec 21, 2019
    • George Barrett's avatar
      Fix disabling of solib probes when LD_AUDITing · cb736441
      George Barrett authored
      The SVR4 solib event handler determines whether an event is related to a
      non-base link namespace by comparing the event's debug struct address
      to the debug struct address of the initial program image. However, this
      can fail when using LD_AUDIT as audit libraries are loaded before the
      loader has initialised the initial program image's debug struct. When
      the event handler fails to find the debug struct, the probe-based
      debugger interface is disabled and a warning is flagged to the user.
      
      This commit adds a fallback test to help determine whether an event is
      for a foreign link namespace when the debug struct isn't available.
      
      gdb/ChangeLog:
      2019-12-15  George Barrett  <bob@bob131.so>
      
      	* solib-svr4.c (svr4_handle_solib_event): Add fallback link
      	namespace test for when the debug struct isn't available.
      cb736441
    • Eli Zaretskii's avatar
      Fix whitespace in last change in top.c · 0ea8adde
      Eli Zaretskii authored
      0ea8adde
    • Eli Zaretskii's avatar
      Include xxHash support status in GDB configuration report · 15b07e4f
      Eli Zaretskii authored
      gdb/ChangeLog
      2019-12-21  Eli Zaretskii  <eliz@gnu.org>
      
      	* top.c (print_gdb_configuration): Print "--with-xxhash" or
      	"--without-xxhash" according to HAVE_LIBXXHASH.
      15b07e4f
    • GDB Administrator's avatar
      Automatic date update in version.in · 39aa1497
      GDB Administrator authored
      39aa1497
  4. Dec 20, 2019
    • Weimin Pan's avatar
      Address Tom Tromey's comments on the CTF reader. · 1c7148dd
      Weimin Pan authored
       * Use the type-safe registry for ctf_file_key;
       * Drop "typedef" when defining "struct ctf_context";
       * Use ANOFFSET with SECT_OFF_TEXT to get the text base address;
      
      gdb/ChangeLog
      2019-12-20  Weimin Pan  <weimin.pan@oracle.com>
              * ctfread.c (ctf_file_key): Change type to objfile_key.
              (struct ctf_context): Remove typedef.
              (get_objfile_text_range): Use ANOFFSET to get text base.
      1c7148dd
    • Simon Marchi's avatar
      sym-info-cmds.exp: add yet another missing quote in test name · 7f2d7a0d
      Simon Marchi authored
      In my previous commit, I missed this other spot that is missing a
      quote...
      
      gdb/testsuite/ChangeLog:
      
      	* lib/sym-info-cmds.exp (GDBInfoSymbols::check_no_entry): Add
      	(another) quote in test name.
      7f2d7a0d
    • Simon Marchi's avatar
      sym-info-cmds.exp: add missing quote in test name · f3bce483
      Simon Marchi authored
      gdb/testsuite/ChangeLog:
      
      	* lib/sym-info-cmds.exp (GDBInfoModuleSymbols::check_no_entry):
      	Add quote in test name.
      f3bce483
    • Tankut Baris Aktemur's avatar
      Use enum bitfield for the calling_convention attribute of a subroutine · d0922fcf
      Tankut Baris Aktemur authored
      This is a refactoring.  Instead of a plain unsigned value, use an enum
      bitfield.
      
      gdb/ChangeLog:
      2019-12-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
      
      	* dwarf2read.c (is_valid_DW_AT_calling_convention_for_subroutine):
      	New function.
      	(read_subroutine_type): Validate the parsed
      	DW_AT_calling_convention value before assigning it to a
      	subroutine's calling_convention attribute.
      	* gdbtypes.h (struct func_type) <calling_convention>: Use
      	an enum bitfield as its type, instead of plain unsigned.
      
      Change-Id: Ibc6b2f71e885cbc5c3c9d49734f7125acbfd1bcd
      d0922fcf
    • Tankut Baris Aktemur's avatar
      testsuite, cp: increase the coverage of testing pass-by-ref arguments · c855a912
      Tankut Baris Aktemur authored
      Extend testcases for GDB's infcall of call-by-value functions that
      take aggregate values as parameters.  In particular, existing test has
      been substantially extended with class definitions whose definitions
      of copy constructor, destructor, and move constructor functions are a
      combination of
      
      (1) explicitly defined by the user,
      (2) defaulted inside the class declaration,
      (3) defaulted outside the class declaration,
      (4) deleted
      (5) not defined in the source.
      
      For each combination, a small and a large class is generated as well
      as a derived class and a container class.  Additionally, the following
      manually-written cases are provided:
      
      - a dynamic class (i.e. class with a virtual method)
      - classes that contain an array field
      - a class whose copy ctor is inlined
      - a class whose destructor is deleted
      - classes with multiple copy and/or move ctors
      
      Test cases check whether GDB makes the right decision to pass an
      object by value or implicitly by reference, whether really a copy of
      the argument is passed, and whether the copy constructor and
      destructor of the clone of the argument are invoked properly.
      
      The input program pass-by-ref.cc is generated in the test's output
      directory.  The input program pass-by-ref-2.cc is manually-written.
      
      Tests have been verified on the X86_64 architecture with
      GCC 7.4.0, 8.2.0, and 9.2.1.
      
      gdb/testsuite/ChangeLog:
      2019-12-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
      
      	* gdb.cp/pass-by-ref.cc: Delete.  Generated in the output
      	directory instead.
      	* gdb.cp/pass-by-ref.exp: Extend with more cases.
      	* gdb.cp/pass-by-ref-2.cc: New file.
      	* gdb.cp/pass-by-ref-2.exp: New file.
      
      Change-Id: Ie8ab1f260c6ad5ee4eb34b2c1597ce24af04abb6
      c855a912
    • Tankut Baris Aktemur's avatar
      infcall: handle pass-by-reference arguments appropriately · 099a6354
      Tankut Baris Aktemur authored
      If an aggregate argument is implicitly pass-by-reference, allocate a
      temporary object on the stack, initialize it via the copy constructor
      (if exists) or trivially by memcpy'ing.  Pass the reference of the
      temporary to the callee function.  After the callee returns, invoke
      the destructor of the temporary.
      
      gdb/ChangeLog:
      2019-12-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
      
      	PR gdb/25054
      	* infcall.c (call_function_by_hand_dummy): Update the argument-
      	passing section for call-by-value parameters.
      	(struct destructor_info): New struct.
      	(call_destructors): New auxiliary function.
      
      Change-Id: I18fa5d0df814dfa0defe9e862a88a6dbf1d99d01
      099a6354
    • Tankut Baris Aktemur's avatar
      infcall, c++: collect more pass-by-reference information · 62bf63d7
      Tankut Baris Aktemur authored
      Walk through a given type to collect information about whether the
      type is copy constructible, destructible, trivially copyable,
      trivially copy constructible, trivially destructible.  The previous
      algorithm returned only a boolean result about whether the type is
      trivially copyable.  This patch computes more info.  Additionally, it
      utilizes DWARF attributes that were previously not taken into account;
      namely, DW_AT_deleted, DW_AT_defaulted, and DW_AT_calling_convention.
      
      gdb/ChangeLog:
      2019-12-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
      
      	* gnu-v3-abi.c (enum definition_style): New enum type.
      	(get_def_style): New function.
      	(is_user_provided_def): New function.
      	(is_implicit_def): New function.
      	(is_copy_or_move_constructor_type): New function.
      	(is_copy_constructor_type): New function.
      	(is_move_constructor_type): New function.
      	(gnuv3_pass_by_reference): Collect language_pass_by_ref_info
      	for a given type.
      
      Change-Id: Ic05bd98a962d07ec3c1ad041f709687eabda3bb9
      62bf63d7
    • Tankut Baris Aktemur's avatar
      infcall, c++: allow more info to be computed for pass-by-reference values · 9d084466
      Tankut Baris Aktemur authored
      In C++, call-by-value arguments that cannot be trivially copied are
      implicitly passed by reference.  When making an infcall, GDB needs to
      find out if an argument is pass-by-reference or not, so that the
      correct semantics can be followed.  This patch enriches the
      information computed by the language ops for pass-by-reference
      arguments.  Instead of a plain binary result, the computed information
      now includes whether the argument is
      
        - copy constructible
        - destructible
        - trivially copyable
        - trivially copy constructible
        - trivially destructible
      
      This information is stored in a struct named 'language_pass_by_ref_info'.
      
      This patch paves the way for GDB's infcall mechanism to call the copy
      ctor and the destructor of a pass-by-ref argument appropriately.
      
      gdb/ChangeLog:
      2019-12-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
      
      	* language.h (struct language_pass_by_ref_info): New struct.
      	(struct language_defn)<la_pass_by_reference>: Change the signature
      	to return a language_pass_by_ref_info instead of an int.
      	(language_pass_by_reference): Ditto.
      	(default_pass_by_reference): Ditto.
      	Adjust the users listed below.
      	* arch-utils.c (default_return_in_first_hidden_param_p):
      	Update.
      	* cp-abi.c (cp_pass_by_reference): Update.
      	* cp-abi.h (cp_pass_by_reference): Update declaration.
      	(struct cp_abi_ops)<pass_by_reference>: Update.
      	* gnu-v3-abi.c (gnuv3_pass_by_reference): Update.
      	* infcall.c (call_function_by_hand_dummy): Update.
      	* language.c (language_pass_by_reference): Update.
      	(default_pass_by_reference): Update.
      	* tic6x-tdep.c (tic6x_return_value): Update.
      
      Change-Id: Ib1c1f87f2490a5737c469f7b7185ddc7f6a164cb
      9d084466
    • Tankut Baris Aktemur's avatar
      gdb: recognize new DWARF attributes: defaulted, deleted, calling conv. · e35000a7
      Tankut Baris Aktemur authored
      Extend GDB's internal representation of types to include the
      DW_AT_calling_convention, DW_AT_defaulted, and DW_AT_deleted attributes
      that were introduced in DWARF5.
      
      These attributes will be helpful in a future patch about infcall'ing
      functions with call-by-value parameters.  GDB will use the attributes
      to decide whether the type of a call-by-value parameter is implicitly
      pass-by-reference.
      
      gdb/ChangeLog:
      2019-12-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
      
      	* dwarf2read.c (dwarf2_add_member_fn): Read the DW_AT_defaulted
      	and DW_AT_deleted attributes of a function.
      	(read_structure_type): Read the DW_AT_calling_convention attribute
      	of a type.
      	(is_valid_DW_AT_defaulted): New function.
      	(is_valid_DW_AT_calling_convention_for_type): New function.
      	* gdbtypes.h: Include dwarf2.h.
      	(struct fn_field)<defaulted>: New field to store the
      	DW_AT_defaulted attribute.
      	(struct fn_field)<is_deleted>: New field to store the
      	DW_AT_deleted attribute.
      	(struct cplus_struct_type)<calling_convention>: New field to store
      	the DW_AT_calling_convention attribute.
      	(TYPE_FN_FIELD_DEFAULTED): New macro.
      	(TYPE_FN_FIELD_DELETED): New macro.
      	(TYPE_CPLUS_CALLING_CONVENTION): New macro.
      	* gdbtypes.c (dump_fn_fieldlists): Update for the changes made
      	to the .h file.
      	(print_cplus_stuff): Likewise.
      
      Change-Id: I54192f363115b78ec7435a8563b73fcace420765
      e35000a7
    • Tom Tromey's avatar
      Don't call tui_show_source from tui_ui_out · b4b49dcb
      Tom Tromey authored
      This removes the call to tui_show_source from tui_ui_out.  This always
      seemed like a hack, and now that the TUI is using the proper
      observers, it seems not to be needed.
      
      The rest of the logic remains, unfortunately, because it is needed to
      suppress some gdb output in the TUI case.  We could probably find a
      nicer way to do this (maybe a ui_out_flag), but I haven't attempted
      this.
      
      This was the last caller of tui_show_source, so this is removed as
      well.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui.c (tui_show_source): Remove.
      	* tui/tui.h (tui_show_source): Don't declare.
      	* tui/tui-out.c (tui_ui_out::do_field_string): Don't call
      	tui_show_source.
      
      Change-Id: Id71098e597ee4ebfef0429562baa45f537bd2c2b
      b4b49dcb
    • Tom Tromey's avatar
      Change tui_show_frame_info to return bool · eb390f49
      Tom Tromey authored
      This changes tui_show_frame_info to return bool.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-stack.h (tui_show_frame_info): Return bool.
      	* tui/tui-stack.c (tui_show_frame_info): Return bool.
      	* tui/tui-hooks.c (tui_refresh_frame_and_register_information):
      	Update.
      
      Change-Id: Id1374f04f919c30a9f50c1beeb70cbc10b9a8f3b
      eb390f49
    • Tom Tromey's avatar
      Fix "list" command in the TUI · fc9d2d72
      Tom Tromey authored
      PR tui/18932 notes that "list" no longer works in the TUI.  At some
      point in the past, it switched the TUI source window to show the
      specified source; but now this source briefly flashes before the TUI
      reverts to showing the current stack frame's source.
      
      This patch fixes this bug by introducing a new observer that notices
      when the user selected context has changed.  Then, the existing
      before-prompt observer is updated to request the correct update:
      either one based on the current stack frame, or one based on the
      user's source symtab_and_line.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	PR tui/18932:
      	* tui/tui-hooks.c (tui_refresh_frame_and_register_information):
      	Rename parameters.  Handle the not-from-stack-frame case.
      	(from_stack, from_source_symtab): New globals.
      	(tui_before_prompt, tui_normal_stop): Update.
      	(tui_context_changed, tui_symtab_changed): New functions.
      	(tui_attach_detach_observers): Attach new observers.
      
      gdb/testsuite/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* gdb.tui/list-before.exp: New file.
      
      Change-Id: I62013825f6c1afdd568a1c7a8c019b0c881131af
      fc9d2d72
    • Tom Tromey's avatar
      Add observable to watch current source symtab · a75cd9a2
      Tom Tromey authored
      This patch adds an observable, so that a later patch can change the
      TUI to notice when the user has selected a new source symtab, say via
      "list".
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* source.c (struct current_source_location) <set, symtab, line>:
      	New methods.
      	<m_symtab, m_line>: Rename.  Now private.
      	(get_current_source_symtab_and_line)
      	(set_default_source_symtab_and_line)
      	(set_current_source_symtab_and_line)
      	(clear_current_source_symtab_and_line, select_source_symtab)
      	(info_source_command, print_source_lines_base)
      	(info_line_command, search_command_helper): Update.
      	* observable.h (current_source_symtab_and_line_changed): Declare
      	observable.
      	* observable.c (current_source_symtab_and_line_changed): Define
      	observable.
      
      Change-Id: I3c0f6b40f2df84b590bdf5b5ec5ccd8423bb7f22
      a75cd9a2
    • Tom Tromey's avatar
      Use bool in tui_before_prompt · 2dfd3df4
      Tom Tromey authored
      This changes tui_before_prompt to take a bool rather than an int.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-hooks.c (tui_before_prompt): Change parameter to bool.
      	(tui_before_prompt, tui_normal_stop): Update.
      
      Change-Id: I9c7f2b764748fe19621851dc4fed4775a6db211a
      2dfd3df4
    • Tom Tromey's avatar
      Don't call set_current_source_symtab_and_line from TUI · 54217b84
      Tom Tromey authored
      update_source_window_as_is calls set_current_source_symtab_and_line,
      but I don't think there is any reason it should be doing this.  This
      patch removes the call.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.c
      	(tui_source_window_base::update_source_window_as_is): Don't call
      	set_current_source_symtab_and_line.
      
      Change-Id: I1152fc7c78150974bd3d555b8568a6f88b65dbe6
      54217b84
    • Tom Tromey's avatar
      Change set_locator_info to take a symtab_and_line · 0ab92974
      Tom Tromey authored
      This changes set_locator_info to take a symtab_and_line, rather than
      the individual components.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-stack.h (struct tui_locator_window) <set_locator_info>:
      	Take a symtab_and_line.
      	* tui/tui-stack.c (tui_locator_window::set_locator_info): Take a
      	symtab_and_line.
      	(tui_show_frame_info): Update.
      
      Change-Id: Icb58d67e6c5bdc034eede9e5bbe8c1d1e633fbb5
      0ab92974
    • Tom Tromey's avatar
      Remove a call to update_exec_info · ae4393e2
      Tom Tromey authored
      tui_show_frame_info calls update_exec_info after calling
      erase_source_content, but there's no need to do this, as
      erase_source_content already clears the exec info.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-stack.c (tui_show_frame_info): Don't call
      	update_exec_info.
      
      Change-Id: I63d658561028ac1bc0a0a2b7ac17da1b9c6134fe
      ae4393e2
    • Tom Tromey's avatar
      Display "main" on initial TUI startup · 77b97e00
      Tom Tromey authored
      I noticed that even when there's a symbol file, "tui enable" won't
      show "main" by default.  I think it should, and this patch fixes this.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui.c (tui_enable): Call tui_display_main.
      
      gdb/testsuite/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* gdb.tui/list.exp: Check for source on initial listing.
      
      Change-Id: Ic7bfc930e1179f5b61111e30a2dae46a98b00064
      77b97e00
    • Tom Tromey's avatar
      Reimplement tui_get_begin_asm_address · 52469d76
      Tom Tromey authored
      tui_get_begin_asm_address looks for the inferior's "main" to display
      it.  I think this is incorrect in two ways.
      
      First, it should probably instead use the user's most recent source
      context, if one has been set.
      
      Second, it uses a hard-coded list of "main" names, but gdb already has
      a better approach to handling this.
      
      This patch fixes both of these problems.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-disasm.c (tui_get_begin_asm_address): Use
      	get_current_source_symtab_and_line, and main_name.
      
      Change-Id: I77dc13d49148e8dec5aa3eeb357ce3968a68d0bd
      52469d76
    • Tom Tromey's avatar
      Simplify tui_update_source_windows_with_line · 5d49bf1b
      Tom Tromey authored
      This changes tui_update_source_windows_with_line to take a
      symtab_and_line, rather than separate parameters, and then updates the
      caller.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui.c (tui_show_source): Update.
      	* tui/tui-winsource.h (tui_update_source_windows_with_line): Update.
      	* tui/tui-winsource.c (tui_update_source_windows_with_line): Take
      	a symtab_symbol_info, not a separate symtab and line.  Simplify.
      
      Change-Id: I8803a0a6fd2938ceee859aea53a57ce582f3e80d
      5d49bf1b
    • Tom Tromey's avatar
      Simplify tui_update_source_windows_with_addr · 88180c08
      Tom Tromey authored
      After the previous changes, tui_update_source_windows_with_addr simply
      updates each source-like window separately, passing the same data to
      each.  So, it can be simplified by using a loop instead.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.c (tui_update_source_windows_with_addr):
      	Simplify.
      
      Change-Id: Id2ba6b3145ec005dbed1b1115118bd1ef4efb842
      88180c08
    • Tom Tromey's avatar
      Use symtab_and_line when updating TUI windows · 9f7540a5
      Tom Tromey authored
      This changes a few TUI source window methods to take a symtab_and_line
      rather than separate symtab and tui_line_or_address parameters.  A
      symtab_and_line already incorporates the same information, so this
      seemed simpler.  Also, it helps avoid the problem that the source and
      disassembly windows need different information -- both forms are
      present in the SAL.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.h (struct tui_source_window_base)
      	<set_contents, update_source_window_as_is, update_source_window>:
      	Take a sal, not a separate symtab and tui_line_or_address.
      	* tui/tui-winsource.c (tui_source_window_base::update_source_window)
      	(tui_source_window_base::update_source_window_as_is): Take a sal,
      	not a separate symtab and tui_line_or_address.
      	(tui_update_source_windows_with_addr)
      	(tui_update_source_windows_with_line)
      	(tui_source_window_base::rerender)
      	(tui_source_window_base::refill): Update.
      	* tui/tui-source.h (struct tui_source_window) <set_contents>: Take
      	a sal, not a separate symtab and tui_line_or_address.
      	* tui/tui-source.c (tui_source_window::set_contents): Take a sal,
      	not a separate symtab and tui_line_or_address.
      	(tui_source_window::maybe_update): Update.
      	* tui/tui-disasm.h (struct tui_disasm_window) <set_contents>: Take
      	a sal, not a separate symtab and tui_line_or_address.
      	* tui/tui-disasm.c (tui_disasm_window::set_contents): Take a sal,
      	not a separate symtab and tui_line_or_address.
      	(tui_disasm_window::do_scroll_vertical)
      	(tui_disasm_window::maybe_update): Update.
      
      Change-Id: I6974a03589930a0f910c657ef50b7f6f7397c87d
      9f7540a5
    • Tom Tromey's avatar
      Use start_line_or_addr in TUI windows · 57e4b379
      Tom Tromey authored
      A few spots in the TUI source and disassembly windows referred to
      content[0], where start_line_or_addr is equivalent.  This patch makes
      this substitution.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.c (tui_source_window_base::refill): Use
      	start_line_or_addr.
      	* tui/tui-source.c (tui_source_window::do_scroll_vertical): Use
      	start_line_or_addr.
      	* tui/tui-disasm.c (tui_disasm_window::do_scroll_vertical): Use
      	start_line_or_addr.
      
      Change-Id: I1fa807321cd7ad88b3cc5e41cc50f4d4e2d46271
      57e4b379
    • Tom Tromey's avatar
      Change tui_source_window_base::set_contents to return bool · 61c33f10
      Tom Tromey authored
      This changes tui_source_window_base::set_contents to return bool,
      rather than tui_status.  It also changes one implementation of
      set_contents to use early returns rather than a variable, which IMO
      makes it easier to follow.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.h (struct tui_source_window_base)
      	<set_contents>: Return bool.
      	* tui/tui-winsource.c
      	(tui_source_window_base::update_source_window_as_is): Update.
      	* tui/tui-source.h (struct tui_source_window) <set_contents>:
      	Return bool.
      	* tui/tui-source.c (tui_source_window::set_contents): Return
      	bool.  Simplify.
      	* tui/tui-disasm.h (struct tui_disasm_window) <set_contents>:
      	Return bool.
      	* tui/tui-disasm.c (tui_disasm_window::set_contents): Return
      	bool.
      
      Change-Id: I8c5212400cd7aadf35760c22d5344cd3b9435674
      61c33f10
    • Tom Tromey's avatar
      Remove tui_source_window::show_symtab_source · 469b0731
      Tom Tromey authored
      tui_source_window::show_symtab_source is identical to
      update_source_window, so remove the former.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.c (tui_update_source_windows_with_addr)
      	(tui_update_source_windows_with_line): Call update_source_window.
      	* tui/tui-source.h (struct tui_source_window)
      	<show_symtab_source>: Don't declare.
      	* tui/tui-source.c (tui_source_window::show_symtab_source):
      	Remove.
      
      Change-Id: I41781df2126e8bafad46d058532d52602a288e06
      469b0731
    • Tom Tromey's avatar
      Remove tui_show_disassem · 855f89b3
      Tom Tromey authored
      tui_show_disassem is just a wrapper for the update_source_window
      method, and it only has a single caller.  This removes the function
      and inlines the logic into that caller.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.c (tui_update_source_windows_with_addr): Call
      	update_source_window directly.
      	* tui/tui-disasm.h (tui_show_disassem): Don't declare.
      	* tui/tui-disasm.c (tui_show_disassem): Remove.
      
      Change-Id: I7ae7a3309f64a4a949c07a80c46e1664c7f12913
      855f89b3
    • Tom Tromey's avatar
      Remove some unnecessary focus switches · d4669c0f
      Tom Tromey authored
      A couple of lower-level utility functions can change the TUI focus.
      This seems incorrect to me -- focus switches should only be done
      either by explicit user request, or ass a side effect of changing the
      layout.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.c
      	(tui_source_window_base::update_source_window_as_is): Don't switch focus.
      	* tui/tui-disasm.c (tui_show_disassem): Don't switch focus.
      
      Change-Id: I0a5bb8a407cf8d52e2fd23b0598eb9bce56b1251
      d4669c0f
    • Tom Tromey's avatar
      Simplify tui_source_window_base::maybe_update method · 1ae58f0c
      Tom Tromey authored
      tui_source_window_base::maybe_update takes a symtab_and_line, plus a
      separate line number and PC.  Because a symtab_and_line already holds
      a line number and a PC, it is possible to remove these extra
      parameters.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.h (struct tui_source_window_base)
      	<maybe_update>: Remove line_no and addr parameters.
      	* tui/tui-stack.c (tui_show_frame_info): Set PC on sal.  Update.
      	* tui/tui-source.h (struct tui_source_window) <maybe_update>:
      	Update.
      	* tui/tui-source.c (tui_source_window::maybe_update): Remove
      	line_no and addr parameters.
      	* tui/tui-disasm.h (struct tui_disasm_window) <maybe_update>:
      	Update.
      	* tui/tui-disasm.c (tui_disasm_window::maybe_update): Remove
      	line_no and addr parameters.
      
      Change-Id: I33d8e1a669a179544edb4197f5f7c5429dfc368e
      1ae58f0c
    • Tom Tromey's avatar
      Remove some TUI asserts · 039298ec
      Tom Tromey authored
      This removes a few asserts from the TUI.  These asserts aren't useful,
      because they simply check an invariant that's already ensured by the
      type system.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.c (tui_source_window_base::set_is_exec_point_at)
      	(tui_source_window_base::update_breakpoint_info): Remove asserts.
      
      Change-Id: I807e1e9bdb0cfa475e70375ceca3a5d4f2eb8d0b
      039298ec
    • Tom Tromey's avatar
      Remove tui_show_disassem_and_update_source · 8acfefcc
      Tom Tromey authored
      tui_show_disassem_and_update_source only has a single caller.  This
      patch simplifies that caller, by having it call tui_show_disassem, and
      then removes tui_show_disassem_and_update_source.
      
      gdb/ChangeLog
      2019-12-20  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-winsource.c (tui_update_source_windows_with_addr): Call
      	tui_show_disassem.
      	* tui/tui-disasm.h (tui_show_disassem_and_update_source): Don't
      	declare.
      	* tui/tui-disasm.c (tui_show_disassem_and_update_source): Remove.
      
      Change-Id: I7554eca8e259f3539ea7710f2ff369b4a630dd9d
      8acfefcc
Loading