- 18 Mar, 2019 14 commits
-
-
Pedro Alves authored
The first time you type UP or DOWN arrow in the command window, GDB should scroll the source window, but instead it displays the line number and the file name in the command window(?). What happens there is that the first time we call tui_ui_out::do_field_int, it doesn't initialize m_line, because m_start_of_line is -1, as set by the constructor; and then the following call to tui_ui_out::do_field_string falls back to cli_ui_out::do_field_string because m_line is zero. The problem is caused by a typo in the C++ification of tui_ui_out, commit 112e8700, where m_line and m_start_of_line's initial values were swapped from what they used to be: -struct ui_out * -tui_out_new (struct ui_file *stream) +tui_ui_out::tui_ui_out (ui_file *stream) +: cli_ui_out (stream, 0), + m_line (0), + m_start_of_line (-1) { - - /* Initialize our fields. */ - data->line = -1; - data->start_of_line = 0; This commit fixes it. gdb/ChangeLog: 2019-03-18 Pedro Alves <palves@redhat.com> Eli Zaretskii <eliz@gnu.org> * tui/tui-out.c (tui_ui_out::tui_ui_out): Fix initialization of m_line and m_start_of_line.
-
Eli Zaretskii authored
gdb/ChangeLog: 2019-03-18 Eli Zaretskii <eliz@gnu.org> * tui/tui-io.c (gdb_wgetch): Don't echo CR. (tui_getc): When gdb_wgetch returns a CR, behave the same as when it returns a newline. This fixes a regression in TUI mode, whereby the next line is output on the same screen line as the user input.
-
Tom Tromey authored
The earlier patch to change minimal symbol allocations to use xmalloc erroneously left a call to obstack_blank in minimal_symbol_reader::install. Because obstack_blank does not finish the object allocation on an obstack, this in turn could cause invalid memory reads in some situations. This patch fixes the problem by removing the call. Tested on x86-64 Fedora 29; also verified with valgrind. gdb/ChangeLog 2019-03-18 Tom Tromey <tromey@adacore.com> * minsyms.c (minimal_symbol_reader::install): Remove call to obstack_blank.
-
Pedro Alves authored
With styling enabled, I think the way we display the TUI's highlighted/current line is very ugly and distracting. The problem in my view is that we reverse foreground/background in colored text as well, leading to rainbow of background colors. This patch changes that to something that I find much more sensible -- only reverse the default foreground/background colors, leave styled text colors alone. If the foreground color is not the default (because the text was styled), leave the foreground color as is. If e.g., the terminal is fg=BLACK, and bg=WHITE, and the style wants to print text in RED, reverse the background color (print in BLACK), but still print the text in RED. Note: The new ui_file_style::set_fg method isn't called set_foreground instead, because set_foreground is a macro in /usr/lib/term.h (ncurses). gdb/ChangeLog: 2019-03-18 Pedro Alves <palves@redhat.com> * tui/tui-io.c (reverse_mode_p, reverse_save_bg, reverse_save_fg): New globals. (apply_style): New, factored out from ... (apply_ansi_escape): ... this. Handle reverse video mode. (tui_set_reverse_mode): New function. * tui/tui-io.h (tui_set_reverse_mode): New declaration. * tui/tui-winsource.c (tui_show_source_line): Use tui_set_reverse_mode instead of setting A_STANDOUT. * ui-style.h (struct ui_file_style) <set_reverse, set_fg, set_bg>: New setter methods.
-
Hannes Domani authored
This commit fixes two issues in scrolling right in the TUI: #1 - Scrolling right with the arrow keys, the first keypress doesn't do anything. The problem is that copy_source_line() checks if (column < first_col), and because of the ++column directly before, it basically starts with 1 instead of 0. #2 - Scrolling right handles TABS and escaped characters as single characters, which just looks weird. The problem is that there's a spot that misses handling TABS. gdb/ChangeLog: 2019-03-18 Hannes Domani <ssbssa@yahoo.de> * tui/tui-source.c (copy_source_line): Fix handling of 'column'. Handle tabs.
-
Tom Tromey authored
Using ptype on an array type in Ada can sometimes show an incorrect high bound. This happens because ada_evaluate_subexp will create an array with an incorrect upper bound in the EVAL_AVOID_SIDE_EFFECTS case. This patch fixes the problem by arranging to always create such an array with valid bounds. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-03-18 Tom Tromey <tromey@adacore.com> * ada-lang.c (empty_array): Add "high" parameter. (ada_evaluate_subexp): Update. gdb/testsuite/ChangeLog 2019-03-18 Joel Brobecker <brobecker@adacore.com> Tom Tromey <tromey@adacore.com> * gdb.ada/ptype_array/pck.adb: New file. * gdb.ada/ptype_array/pck.ads: New file. * gdb.ada/ptype_array/foo.adb: New file. * gdb.ada/ptype_array.exp: New file.
-
Alan Modra authored
* as.c (macro_expr): Use temp_ilp and restore_ilp. * macro.c (buffer_and_nest): Likewise. * read.c (temp_ilp): Remove FIXME.
-
Alan Modra authored
These fails were introduced by git commit 2469b3c5 with the inroduction of "input_from_string": m68k-linux FAIL: MRI structured for m68k-linux FAIL: MRI structured if m68k-linux FAIL: MRI structured repeat m68k-linux FAIL: MRI structured while Since the m68k parser called expression() without setting input_from_string, get_symbol_name rejected FAKE_LABEL_CHAR in names. * config/m68k-parse.y (yylex): Use temp_ilp and restore_ilp.
-
Alan Modra authored
This one looks to be a bug going back to 2009, git commit e054468f "STT_GNU_IFUNC support for PowerPC". That bug was carried over with git commit 49c09209 "Rearrange PLT reloc output on powerpc". If the refcount for an ifunc local sym plt entry was zero, ppc_elf_size_dynamic_sections would correctly set plt.offset to -1 but leave glink_offset uninitialized. That leads to occasional segfaults (which can be made solid with MALLOC_PERTURB_=1 when using glibc). So, guard the write_glink_stub call with plt.offset != -1. Also, remove the totally ineffective attempt at writing multiple-use glink stubs only once. PR 24355 * elf32-ppc.c (ppc_finish_symbols): Don't call write_glink_stub for local iplt syms with ent->plt.offset == -1. Remove ineffective attempt at writing glink stubs only once.
-
Alan Modra authored
* testsuite/ld-elf/merge.d: Remove csky from xfails, add moxie. * testsuite/ld-elf/pr21884.d: Remove csky from xfails. * testsuite/ld-elf/shared.exp: Add csky to list not xfailing pr22374. * testsuite/ld-unique/pr21529.d: Remove csky from xfails
-
Sergei Trofimovich authored
The build failure was noticed by Helmut Jarausch in https://bugs.gentoo.org/680232: $ ./configure CXXFLAGS='-std=c++17 -Os' ... CXXLD gdb ld: init.o: in function `initialize_all_files()': init.c:(.text+0x113): undefined reference to `_initialize_string_view_selftests()' It happens because '_initialize_string_view_selftests()' is conditionally defined based on C++ default. The change defines '_initialize_string_view_selftests()' unconditionally and leaves implementation a no-op on c++17 compilers. gdb/ChangeLog: 2019-03-17 Sergei Trofimovich <siarheit@google.com> * unittests/string_view-selftests.c: Define _initialize_string_view_selftests unconditionally.
-
H.J. Lu authored
* testsuite/gas/i386/att-regs.d: Pass -O0 to assembler. * testsuite/gas/i386/avx512bw-intel.d: Likewise. * testsuite/gas/i386/avx512bw.d: Likewise. * testsuite/gas/i386/avx512f-intel.d: Likewise. * testsuite/gas/i386/avx512f.d: Likewise. * testsuite/gas/i386/disp32.d: Likewise. * testsuite/gas/i386/intel-regs.d: Likewise. * testsuite/gas/i386/pseudos.d: Likewise. * testsuite/gas/i386/x86-64-disp32.d: Likewise. * testsuite/gas/i386/x86-64-pseudos.d: Likewise.
-
H.J. Lu authored
When there is no write mask, we can encode lower 16 128-bit/256-bit EVEX vector register load and store instructions as VEX vector register load and store instructions with -O1. gas/ PR gas/24348 * config/tc-i386.c (optimize_encoding): Encode 128-bit and 256-bit EVEX vector register load/store instructions as VEX vector register load/store instructions for -O1. * doc/c-i386.texi: Update -O1 documentation. * testsuite/gas/i386/i386.exp: Run PR gas/24348 tests. * testsuite/gas/i386/optimize-1.s: Add tests for EVEX vector load/store instructions. * testsuite/gas/i386/optimize-2.s: Likewise. * testsuite/gas/i386/optimize-3.s: Likewise. * testsuite/gas/i386/optimize-5.s: Likewise. * testsuite/gas/i386/x86-64-optimize-2.s: Likewise. * testsuite/gas/i386/x86-64-optimize-3.s: Likewise. * testsuite/gas/i386/x86-64-optimize-4.s: Likewise. * testsuite/gas/i386/x86-64-optimize-5.s: Likewise. * testsuite/gas/i386/x86-64-optimize-6.s: Likewise. * testsuite/gas/i386/optimize-1.d: Updated. * testsuite/gas/i386/optimize-2.d: Likewise. * testsuite/gas/i386/optimize-3.d: Likewise. * testsuite/gas/i386/optimize-4.d: Likewise. * testsuite/gas/i386/optimize-5.d: Likewise. * testsuite/gas/i386/x86-64-optimize-2.d: Likewise. * testsuite/gas/i386/x86-64-optimize-3.d: Likewise. * testsuite/gas/i386/x86-64-optimize-4.d: Likewise. * testsuite/gas/i386/x86-64-optimize-5.d: Likewise. * testsuite/gas/i386/x86-64-optimize-6.d: Likewise. * testsuite/gas/i386/optimize-7.d: New file. * testsuite/gas/i386/optimize-7.s: Likewise. * testsuite/gas/i386/x86-64-optimize-8.d: Likewise. * testsuite/gas/i386/x86-64-optimize-8.s: Likewise. opcodes/ PR gas/24348 * i386-opc.tbl: Add Optimize to vmovdqa32, vmovdqa64, vmovdqu8, vmovdqu16, vmovdqu32 and vmovdqu64. * i386-tbl.h: Regenerated.
-
GDB Administrator authored
-
- 17 Mar, 2019 5 commits
-
-
H.J. Lu authored
Since all AVX512 processors support AVX, we can encode 256-bit/512-bit VEX/EVEX vector register clearing instructions with 128-bit VEX vector register clearing instructions at -O1. * config/tc-i386.c (optimize_encoding): Encode 256-bit/512-bit VEX/EVEX vector register clearing instructions with 128-bit VEX vector register clearing instructions at -O1. * doc/c-i386.texi: Update -O1 and -O2 documentation. * testsuite/gas/i386/i386.exp: Run optimize-1a and x86-64-optimize-2a. * testsuite/gas/i386/optimize-1a.d: New file. * testsuite/gas/i386/x86-64-optimize-2a.d: Likewise.
-
Владимир Мартьянов authored
There is unused variable text_vma in function windows_make_so. This leads to build error on Windows using Cygwin. gdb/ChangeLog: 2019-03-17 Vladimir Martyanov <vilgeforce@gmail.com> PR gdb/24350 * windows-nat.c (windows_make_so): Remove unused text_vma variable.
-
Владимир Мартьянов authored
There are a wrong format strings in function display_selector() in file windows-nat.c. This leads to build error using Cygwin on Windows. LDT_ENTRY.HighWord is a DWORD, which is unsigned long int, so the format specification should be for long int, not simply int. gdb/ChangeLog: 2019-03-17 Vladimir Martyanov <vilgeforce@gmail.com> PR gdb/24351 * windows-nat.c (display_selector): Format specifications fixed
-
Eli Zaretskii authored
Without this change, when the current line is longer than the source window width, redisplaying that line overwrites the window frame and also portions of the next line. gdb/ChangeLog: 2019-03-17 Eli Zaretskii <eliz@gnu.org> * tui/tui-winsource.c (tui_set_is_exec_point_at): Call tui_refill_source_window instead of tui_refresh_win, to update the current execution line. This fixes redisplay of the current line when stepping through very long lines with "next" or "step".
-
GDB Administrator authored
-
- 16 Mar, 2019 7 commits
-
-
H.J. Lu authored
Set optimize to INT_MAX, instead of -1, for -Os so that -Os will include -O2 optimization. PR gas/24353 * config/tc-i386.c (md_parse_option): Set optimize to INT_MAX for -Os. * testsuite/gas/i386/optimize-2.s: Add a test. * testsuite/gas/i386/x86-64-optimize-3.s: Likewise. * testsuite/gas/i386/optimize-2.d: Updated. * testsuite/gas/i386/x86-64-optimize-3.d: Likewise.
-
H.J. Lu authored
We can optimize 512-bit EVEX to 128-bit EVEX encoding for upper 16 vector registers only when AVX512VL is enabled. We can't optimize EVEX to 128-bit VEX encoding when AVX isn't enabled. PR gas/24352 * config/tc-i386.c (optimize_encoding): Encode 512-bit EVEX with 128-bit VEX encoding only when AVX is enabled and with 128-bit EVEX encoding only when AVX512VL is enabled. * testsuite/gas/i386/i386.exp: Run PR gas/24352 tests. * testsuite/gas/i386/optimize-6.s: New file. * testsuite/gas/i386/optimize-6a.d: Likewise. * testsuite/gas/i386/optimize-6b.d: Likewise. * testsuite/gas/i386/optimize-6c.d: Likewise. * testsuite/gas/i386/x86-64-optimize-7.s: Likewise. * testsuite/gas/i386/x86-64-optimize-7a.d: Likewise. * testsuite/gas/i386/x86-64-optimize-7b.d: Likewise. * testsuite/gas/i386/x86-64-optimize-7c.d: Likewise. * testsuite/gas/i386/x86-64-optimize-2.d: Updated.
-
Eli Zaretskii authored
gdb/ChangeLog: 2019-03-16 Eli Zaretskii <eliz@gnu.org> * source-cache.c (source_cache::get_source_lines): Call find_source_lines to initialize s->nlines. This fixes vertical scrolling of TUI source window when the DOWN arrow is pressed.
-
Philippe Waroquiers authored
-
Eli Zaretskii authored
gdb/ChangeLog: 2019-03-16 Eli Zaretskii <eliz@gnu.org> * tui/tui-winsource.c (tui_show_source_line): Revert "Use wclrtoeol in tui_show_source_line". This reverts changes made in commit 4a304592.
-
Alan Modra authored
Reverts commit 1ff31e13, fixing the problem more generally. There are likely other place that will segfault on a NULL section. PR 24337 * elf.c (_bfd_elf_rela_local_sym): Revert last change. (_bfd_elf_rel_local_sym): Likewise. * elflink.c (elf_link_input_bfd): Use bfd_und_section for section of symbols with unrecognized shndx.
-
GDB Administrator authored
-
- 15 Mar, 2019 14 commits
-
-
Tom Tromey authored
This changes struct minimal_symbol to inherit from general_symbol_info and updates various macros to cope. Because MSYMBOL_SET_LANGUAGE and MSYMBOL_SET_NAMES were only used from a single spot, this patch removes them in favor of simply inlining their definitions. I consider this to be somewhat cleaner, not least because the "phony polymorphism" provided by such macros is not useful in practice. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * symtab.h (struct minimal_symbol): Derive from general_symbol_info. (MSYMBOL_VALUE, MSYMBOL_VALUE_RAW_ADDRESS) (MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_BYTES) (MSYMBOL_BLOCK_VALUE, MSYMBOL_VALUE_CHAIN, MSYMBOL_LANGUAGE) (MSYMBOL_SECTION, MSYMBOL_OBJ_SECTION, MSYMBOL_NATURAL_NAME) (MSYMBOL_LINKAGE_NAME, MSYMBOL_DEMANGLED_NAME) (MSYMBOL_SEARCH_NAME): Update. (MSYMBOL_SET_LANGUAGE, MSYMBOL_SET_NAMES): Remove. * solib.c (gdb_bfd_lookup_symbol_from_symtab): Don't use memset. * minsyms.c (minimal_symbol_reader::record_full): Update.
-
Tom Tromey authored
minimal_symbol_reader::install copies minsyms from the msym_bunch objects into the allocated memory. It seemed better to me to do this via memcpy, as that is frequently optimized in libc. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * minsyms.c (minimal_symbol_reader::install): Use memcpy.
-
Tom Tromey authored
Currently, minimal symbols are allocated on the per-BFD obstack. However, it is also possible for multiple symbol readers to create minimal symbols for a given objfile. In this case, the minimal symbols will be reallocated on the obstack, leading to some waste of storage. This is a memory leak, but I think it won't be caught by tools like valgrind, because valgrind doesn't know about obstacks. This patch fixes the problem by using malloc to allocate the storage for minimal symbols. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * objfiles.h (struct objfile_per_bfd_storage) <msymbols>: Now a unique_xmalloc_ptr. (objfile::msymbols_range::begin, objfile::msymbols_range::end): Update. * minsyms.c (lookup_minimal_symbol_by_pc_section) (build_minimal_symbol_hash_tables) (minimal_symbol_reader::install): Update.
-
Tom Tromey authored
This changes objfile_per_bfd_storage::demangled_names_hash to be an htab_up. This lets us remove some manual management code from the objfile_per_bfd_storage destructor. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * symtab.c (create_demangled_names_hash): Update. (symbol_set_names): Update. * objfiles.h (struct objfile_per_bfd_storage) <demangled_names_hash>: Now an htab_up. * objfiles.c (objfile_per_bfd_storage): Simplify.
-
Tom Tromey authored
There's no reason that the objfile_per_bfd_storage must be allocated via bfd_alloc. This patch changes objfile_per_bfd_storage to be managed more simply, via ordinary new and delete; and moves some code into its (new) destructor. While doing this I also noticed an extra initialization of language_of_main, and removed it. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * objfiles.h (struct objfile_per_bfd_storage): Declare destructor. * objfiles.c (objfile_per_bfd_storage::~objfile_per_bfd_storage): New. (get_objfile_bfd_data): Use new. Don't initialize language_of_main. (free_objfile_per_bfd_storage): Remove. (objfile_bfd_data_free, objfile::~objfile): Use delete.
-
Tom Tromey authored
I was curious what used the terminating "null" minimal symbol; and after looking I could not find anything. This patch removes terminate_minimal_symbol_table and the extra minimal symbol that is allocated for it. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * symfile.c (reread_symbols): Update. * objfiles.c (objfile::objfile): Update. * minsyms.h (terminate_minimal_symbol_table): Don't declare. * minsyms.c (lookup_minimal_symbol_by_pc_section): Update comment. (minimal_symbol_reader::install): Update. (terminate_minimal_symbol_table): Remove. * jit.c (jit_object_close_impl): Update.
-
Tom Tromey authored
minimal_symbol_reader::record_full does not need to initialize any minsym fields to 0, because that was already done implicitly via the use of XCNEW when allocating the msym_bunch. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * minsyms.c (minimal_symbol_reader::record_full): Remove some initializations.
-
Tom Tromey authored
I noticed that objfile_per_bfd_storage::demangled_hash_languages is a std::vector, which seemed quite large for something that, fundamentally, can be represented as a bitset. This patch reimplements it as a std::bitset. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * objfiles.h (struct objfile_per_bfd_storage) <demangled_hash_languages>: Now a bitset. * minsyms.c (add_minsym_to_demangled_hash_table): Update. (lookup_minimal_symbol): Update.
-
Tom Tromey authored
Only one caller of minimal_symbol_reader::record_with_info was using the return value, so this patch simplifies this code by having it return void and changing that caller to use record_full instead. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * minsyms.h (class minimal_symbol_reader) <record_with_info>: Don't return the symbol. * coffread.c (record_minimal_symbol): Use record_full.
-
H.J. Lu authored
For LTO, a symbol may defined in discarded section. We should mark it as undefined so that LTO plugin will make IR definition available. PR ld/24267 * coffgen.c (_bfd_coff_section_already_linked): Skip discarded section. * cofflink.c (coff_link_add_symbols): Check for symbols defined in discarded section.
-
Nick Clifton authored
PR 24262 * ld.texi (-plugin): Correct the path used to locate linker plugins.
-
Li Hao authored
PR 24308 * config/tc-i386.c (parse_insn): Check mnemp before using it to determine if a suffix can be trimmed.
-
Alan Modra authored
PR 24339 * elflink.c (elf_link_add_object_symbols): Bail out on a local symbol after globals if elf_bad_symtab is not set.
-
Alan Modra authored
PR 24337 * elf.c (_bfd_elf_rela_local_sym): Don't segfault on NULL sec. (_bfd_elf_rel_local_sym): Likewise.
-