aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-06-17i386: Check vector length for vshufXXX/vinsertXXX/vextractXXXH.J. Lu8-15/+154
Since not all vector lengths are supported by vshufXXX, vinsertXXX and vextractXXX, decode them only with supported vector lengths. gas/ PR binutils/24691 * testsuite/gas/i386/disassem.s: Add test for vshuff32x4 with invalid vector length. * testsuite/gas/i386/x86-64-disassem.s: Likewise. * testsuite/gas/i386/disassem.d: Updated. * testsuite/gas/i386/x86-64-disassem.d: Likewise. opcodes/ PR binutils/24691 * i386-dis-evex.h (evex_table): Update EVEX_W_0F3A23_P_2, EVEX_W_0F3A38_P_2, EVEX_W_0F3A39_P_2, EVEX_W_0F3A3A_P_2, EVEX_W_0F3A3B_P_2 and EVEX_W_0F3A43_P_2. (evex_len_table): Add EVEX_LEN_0F3A23_P_2_W_0, EVEX_LEN_0F3A23_P_2_W_1, EVEX_LEN_0F3A38_P_2_W_0, EVEX_LEN_0F3A38_P_2_W_1, EVEX_LEN_0F3A39_P_2_W_0, EVEX_LEN_0F3A39_P_2_W_1, EVEX_LEN_0F3A3A_P_2_W_0, EVEX_LEN_0F3A3A_P_2_W_1, EVEX_LEN_0F3A3B_P_2_W_0, EVEX_LEN_0F3A3B_P_2_W_1, EVEX_LEN_0F3A43_P_2_W_0 and EVEX_LEN_0F3A43_P_2_W_1. * i386-dis.c (EVEX_LEN_0F3A23_P_2_W_0): New enum. (EVEX_LEN_0F3A23_P_2_W_1): Likewise. (EVEX_LEN_0F3A38_P_2_W_0): Likewise. (EVEX_LEN_0F3A38_P_2_W_1): Likewise. (EVEX_LEN_0F3A39_P_2_W_0): Likewise. (EVEX_LEN_0F3A39_P_2_W_1): Likewise. (EVEX_LEN_0F3A3A_P_2_W_0): Likewise. (EVEX_LEN_0F3A3A_P_2_W_1): Likewise. (EVEX_LEN_0F3A3B_P_2_W_0): Likewise. (EVEX_LEN_0F3A3B_P_2_W_1): Likewise. (EVEX_LEN_0F3A43_P_2_W_0): Likewise. (EVEX_LEN_0F3A43_P_2_W_1): Likewise.
2019-06-17aarch64: remove unnecessary loc_hash_table traversalSzabolcs Nagy2-24/+6
The loc_hash_table should only contain local ifunc symbols. The current code already aborts if there is anything else and for defined ifunc symbols elfNN_aarch64_allocate_dynrelocs is a no-op. bfd/ChangeLog: * elfnn-aarch64.c (elfNN_aarch64_allocate_local_dynrelocs): Remove. (elfNN_aarch64_size_dynamic_sections): Remove loc_hash_table traversal with elfNN_aarch64_allocate_local_dynrelocs.
2019-06-17Automatic date update in version.inGDB Administrator1-1/+1
2019-06-16[gdb/contrib] Fix gdb/contrib/gdb-add-index.sh for dwz-m-ed execsTom de Vries2-47/+96
Atm gdb-add-index.exp fails with target board cc-with-dwz-m. Fix this by updating gdb/contrib/gdb-add-index.sh to handle a dwz-m-ed executable. Tested on x86_64-linux. gdb/ChangeLog: 2019-06-16 Tom de Vries <tdevries@suse.de> PR gdb/24445 * contrib/gdb-add-index.sh: Update to handle dwz-m-ed executable.
2019-06-16Don't cast a tui_win_info directly to tui_gen_win_infoTom Tromey2-3/+8
I found a few spots that directly cast a tui_win_info to a tui_gen_win_info. However, I think it's a bit better here to take the address of the "generic" member. As far as I know, nothing relies on being able to downcast here, so this gives us the freedom to rearrange the structure. gdb/ChangeLog 2019-06-16 Tom Tromey <tom@tromey.com> * tui/tui-wingeneral.c (tui_unhighlight_win, tui_highlight_win) (make_all_visible): Use address of member.
2019-06-16Remove more unnecessary casts of NULLTom Tromey4-19/+24
I found a few more spots that unnecessarily cast NULL to a pointer type. My earlier search included a "*" in the cast, but these use a typedef to a pointer type instead. This patch removes these casts. gdb/ChangeLog 2019-06-16 Tom Tromey <tom@tromey.com> * tui/tui-data.c (tui_clear_win_detail, init_win_info) (tui_free_window, free_content, free_content_elements): Remove unnecessary cast. * tui/tui-windata.c (tui_display_all_data): Remove unnecessary cast. * tui/tui-regs.c (tui_show_register_group) (tui_display_registers_from, tui_display_reg_element_at_line): Remove unnecessary cast.
2019-06-16gdb: Remove unused signal maskAndrew Burgess2-6/+5
In the following commit: commit 7feb7d068ae65557ede03c36468ebac61b0939ca Date: Mon May 11 12:08:03 2009 +0000 The last useful uses of normal_mask in linux-nat.c were removed, since then this variable has sat around being initialised, but never used. There should be no user visible changes after this commit. gdb/ChangeLog: * linux-nat.c (normal_mask): Delete. (_initialize_linux_nat): Don't initialise normal_mask.
2019-06-16Write index for dwz -m fileSimon Marchi8-150/+280
PR 24445 ("dwz multifile index not written to index cache") exposed the fact that we are not doing things right when we generate an index for an object file that has is linked to a dwz file. The same happens whether the index is generated with the intent of populating the index cache or using the save gdb-index command. The problem can be observed when running these tests with the cc-with-dwz-m board: FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats FAIL: gdb.dwarf2/gdb-index.exp: index used FAIL: gdb.dwarf2/gdb-index.exp: index used after symbol reloading When generating the index for such file and inspecting the CU list of the resulting index (with readelf --debug-dump=gdb_index), we can see something like: CU table: [ 0] 0x0 - 0xb9 [ 1] 0x0 - 0x44 This is supposed to be a sorted list of the ranges of all CUs in the file this index represents, so already having some overlap is a red flag. It turns out that we save the ranges of CUs coming from both the main file and the dwz file in the same index. After digging a little bit, it became quite obvious that the index in the main file should only list the CUs present in the main file, and a separate index should be generated for the dwz file, listing the CUs present in that file. First, that's what happens if you run dwz on a file that already has a GDB index embedded. Second, dwarf2read.c has code to read an index from a dwz file. The index in the dwz file is actually required to be present, if the main file has an index. So this patch changes write_psymtabs_to_index to generate an index for the dwz file, if present. That index only contains a CU list, just like what the dwz tool does when processing a file that already contains an index. Some notes about the implementation: - The file management (creating a temp file, make sure it's close/removed on error - in the right order) is a bit heavy in write_psymtabs_to_index, and I needed to add a third file. I factored this pattern in a separate class, index_wip_file. - It became a bit tedious to keep the call to assert_file_size in write_psymtabs_to_index, write_gdbindex would have had to return two sizes. Instead, I moved the calls to assert_file_size where the file is written. The downside is that we lose the filename at this point, but it was only used for the very improbable case of ftell failing, so I think it's not a problem. - The actual writing of the index file is factored out to write_gdbindex_1, so it can be re-used for both index files. - While the "save gdb-index" command will now write two .gdb-index files, this patch does not update the gdb-add-index.sh script, this will come in a later patch. gdb/ChangeLog: YYYY-MM-DD Simon Marchi <simon.marchi@efficios.com> PR gdb/24445 * dwarf-index-write.h (write_psymtabs_to_index): Add dwz_basename parameter. * dwarf-index-write.c (write_gdbindex): Move file writing to write_gdbindex_1. Change return type void. (assert_file_size): Move up, remove filename parameter. (write_gdbindex_1): New function. (write_debug_names): Change return type to void, call assert_file_size. (struct index_wip_file): New struct. (write_psymtabs_to_index): Add dwz_basename parameter. Move file logic to index_wip_file. Write index for dwz file if needed. (save_gdb_index_command): Pass basename of dwz file, if present. * dwarf-index-cache.c (index_cache::store): Obtain and pass build-id of dwz file, if present. * dwarf2read.c (struct dwz_file): Move to dwarf2read.h. (dwarf2_get_dwz_file): Likewise. * dwarf2read.h (struct dwz_file): Move from dwarf2read.c. (dwarf2_get_dwz_file): Likewise. gdb/testsuite/ChangeLog: YYYY-MM-DD Tom de Vries <tdevries@suse.de> PR gdb/24445 * gdb.dwarf2/gdb-index.exp (add_gdb_index): Update dwz file with generated index.
2019-06-16Replace uses of concat with xstrdupTom Tromey3-2/+7
I noticed a couple of spots using concat that could use xstrdup instead. This patch fixes these. gdb/ChangeLog 2019-06-16 Tom Tromey <tom@tromey.com> * coffread.c (process_coff_symbol): Use xstrdup. * value.c (create_internalvar): Use xstrdup.
2019-06-16Remove unnecessary casts of NULLTom Tromey25-92/+128
I noticed some unnecessary casts of NULL. This removes all the unnecessary ones, leaving only ones where we must ensure that NULL has pointer type for passing through varargs. I removed a couple of useless casts of 0 that I noticed while writing this. Tested by rebuilding. gdb/ChangeLog 2019-06-16 Tom Tromey <tom@tromey.com> * valops.c (value_cast, value_slice): Remove unnecessary cast. * breakpoint.c (stopin_command, stopat_command) (until_break_command, decode_location_default): Remove unnecessary cast. * utils.c (subset_compare): Remove unnecessary cast. * ada-lang.c (ada_update_initial_language): Remove unnecessary cast. * linespec.c (decode_line_with_last_displayed): Remove unnecessary cast. * infcmd.c (path_command): Remove unnecessary cast. * coffread.c (decode_type): Remove unnecessary cast. * xcoffread.c (read_xcoff_symtab): Remove unnecessary cast. * mipsread.c (mipscoff_symfile_read): Remove unnecessary cast. * tui/tui-stack.c (tui_show_locator_content) (tui_show_frame_info): Remove unnecessary cast. * tui/tui-win.c (tui_scroll_forward_command) (tui_scroll_backward_command, tui_set_focus, tui_set_win_height) (parse_scrolling_args): Remove unnecessary cast. * tui/tui-data.c (init_win_info, tui_del_window) (tui_free_window, tui_del_data_windows, tui_free_data_content) (free_content_elements): Remove unnecessary cast. * tui/tui-windata.c (tui_first_data_item_displayed): Remove unnecessary cast. * tui/tui-source.c (tui_set_source_content) (tui_vertical_source_scroll): Remove unnecessary cast. * tui/tui-layout.c (tui_default_win_height): Remove unnecessary cast. * tui/tui-io.c (tui_initialize_io): Remove unnecessary cast. * tui/tui-regs.c (tui_display_registers_from) (tui_display_register): Remove unnecessary cast. * tui/tui-wingeneral.c (tui_refresh_win, tui_delete_win) (tui_unhighlight_win, tui_highlight_win, tui_make_window) (make_visible): Remove unnecessary cast. * tui/tui-winsource.c (tui_erase_source_content) (tui_update_breakpoint_info, tui_set_exec_info_content): Remove unnecessary cast. * ax-gdb.c (agent_command_1): Remove unnecessary cast. * cli/cli-setshow.c (cmd_show_list): Remove unnecessary cast. * stabsread.c (read_type, read_array_type, read_range_type): Remove unnecessary cast. * mdebugread.c (mdebug_build_psymtabs): Remove unnecessary cast. (parse_symbol, parse_type, upgrade_type, parse_external) (parse_partial_symbols, psymtab_to_symtab_1, cross_ref): Remove unnecessary cast. * gdb_bfd.c (gdb_bfd_map_section): Remove unnecessary cast.
2019-06-16gdb/testsuite: Improve detection of bug gdb/24541Andrew Burgess2-0/+9
In bug gdb/24686 a testsuite failure was reported, this failure was actually just another instance of bug gdb/24541, however, due to the non-deterministic nature of bug gdb/24541 the testsuite pattern that was intended to catch this bug failed. This commit adds a second pattern to help detect gdb/24541, which should change the FAIL reported in gdb/24686 into a KFAIL. gdb/testsuite/ChangeLog: PR gdb/24686 * gdb.mi/mi-catch-cpp-exceptions.exp: Add an extra pattern to improve detection of bug gdb/24541.
2019-06-16Remove some NULL checks from the TUITom Tromey2-16/+12
I found a few spots in the TUI that were NULL-checking the result of XNEW. This cannot return NULL, so this patch removes the checks. gdb/ChangeLog 2019-06-16 Tom Tromey <tom@tromey.com> * tui/tui-data.c (tui_alloc_generic_win_info) (tui_alloc_win_info, tui_add_content_elements): Remove NULL checks.
2019-06-16Fix some whitespace issues in gdb ChangeLogsSimon Marchi3-19/+19
2019-06-16Make gdb.base/index-cache.exp work with readnow board (PR 24669)Simon Marchi2-20/+37
The gdb.base/index-cache.exp test fails with the readnow board: $ make check TESTS="gdb.base/index-cache.exp" RUNTESTFLAGS="--target_board=readnow" FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: at least one file was created FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: expected file is there FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: check index-cache stats FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats The problem is similar to what was fixed in 5a56d6a65f84 ("[gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index,debug-names}") In that commit, gdb.base/index-cache.exp was modified to account for the fact that the index cache is not used when the binary already has an embedded index. The same situation happens when GDB is started with the -readnow flag: it bypasses indices and partial symbols. So this patch updates the test to also expect the index cache not to be used if -readnow is present in $GDBFLAGS, gdb/testsuite/ChangeLog: PR gdb/24669 * gdb.base/index-cache.exp (uses_readnow, expecting_index_cache_use): Define global variable. (test_cache_enabled_miss, test_cache_enabled_hit): Use expecting_index_cache_use.
2019-06-16Automatic date update in version.inGDB Administrator1-1/+1
2019-06-16gdb/fortran: Show the type for non allocated / associated typesAndrew Burgess9-57/+283
Show the type of not-allocated and/or not-associated types. For array types and pointer to array types we are going to print the number of ranks. Consider this Fortran program: program test integer, allocatable :: vla (:) logical l allocate (vla(5:12)) l = allocated (vla) end program test And this GDB session with current HEAD: (gdb) start ... 2 integer, allocatable :: vla (:) (gdb) n 4 allocate (vla(5:12)) (gdb) ptype vla type = <not allocated> (gdb) p vla $1 = <not allocated> (gdb) And the same session with this patch applied: (gdb) start ... 2 integer, allocatable :: vla (:) (gdb) n 4 allocate (vla(5:12)) (gdb) ptype vla type = integer(kind=4), allocatable (:) (gdb) p vla $1 = <not allocated> (gdb) The type of 'vla' is now printed correctly, while the value itself still shows as '<not allocated>'. How GDB prints the type of associated pointers has changed in a similar way. gdb/ChangeLog: * f-typeprint.c (f_print_type): Don't return early for not associated or not allocated types. (f_type_print_varspec_suffix): Add print_rank parameter and print ranks of array types in case they dangling. (f_type_print_base): Add print_rank parameter. gdb/testsuite/ChangeLog: * gdb.fortran/pointers.f90: New file. * gdb.fortran/print_type.exp: New file. * gdb.fortran/vla-ptype.exp: Adapt expected results. * gdb.fortran/vla-type.exp: Likewise. * gdb.fortran/vla-value.exp: Likewise. * gdb.mi/mi-vla-fortran.exp: Likewise.
2019-06-15gdb/mi: New commands to catch C++ exceptionsAndrew Burgess14-37/+580
Adds some MI commands to catch C++ exceptions. The new commands are -catch-throw, -catch-rethrow, and -catch-catch, these all correspond to the CLI commands 'catch throw', 'catch rethrow', and 'catch catch'. Each MI command takes two optional arguments, '-t' has the effect of calling 'tcatch' instead of 'catch', for example: (gdb) -catch-throw -t Is the same as: (gdb) tcatch throw There is also a '-r REGEXP' argument that can supply a regexp to match against the exception type, so: (gdb) -catch-catch -r PATTERN Is the same as: (gdb) catch catch PATTERN The change in print_mention_exception_catchpoint might seem a little strange; changing the output from using ui_out::field_int and ui_out::text to using ui_out::message. The print_mention_exception_catchpoint is used as the 'print_mention' method for the exception catchpoint breakpoint object. Most of the other 'print_mention' methods (see breakpoint.c) use either printf_filtered, of ui_out::message. Using field_int was causing an unexpected field to be added to the MI output. Here's the output without the change in print_mention_exception_catchpoint: (gdb) -catch-throw ^done,bkptno="1",bkpt={number="1",type="breakpoint",disp="keep", enabled="y",addr="0x00000000004006c0", what="exception throw",catch-type="throw", thread-groups=["i1"],times="0"} Notice the breakpoint number appears in both the 'bkptno' field, and the 'number' field within the 'bkpt' tuple. Here's the output with the change in print_mention_exception_catchpoint: (gdb) -catch-throw ^done,bkpt={number="1",type="breakpoint",disp="keep", enabled="y",addr="0x00000000004006c0", what="exception throw",catch-type="throw", thread-groups=["i1"],times="0"} gdb/ChangeLog: * NEWS: Mention new MI commands. * break-catch-throw.c (enum exception_event_kind): Move to breakpoint.h. (print_mention_exception_catchpoint): Output text as a single message. (catch_exception_command_1): Rename to... (catch_exception_event): ...this, make non-static, update header command, and change some parameter types. (catch_catch_command): Update for changes to catch_exception_command_1. (catch_throw_command): Likewise. (catch_rethrow_command): Likewise. * breakpoint.c (enum exception_event_kind): Delete. * breakpoint.h (enum exception_event_kind): Moved here from break-catch-throw.c. (catch_exception_event): Declare. * mi/mi-cmd-catch.c (mi_cmd_catch_exception_event): New function. (mi_cmd_catch_throw): New function. (mi_cmd_catch_rethrow): New function. (mi_cmd_catch_catch): New function. * mi/mi-cmds.c (mi_cmds): Add 'catch-throw', 'catch-rethrow', and 'catch-catch' entries. * mi/mi-cmds.h (mi_cmd_catch_throw): Declare. (mi_cmd_catch_rethrow): Declare. (mi_cmd_catch_catch): Declare. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Catchpoint Commands): Add menu entry to new node. (C++ Exception GDB/MI Catchpoint Commands): New node to describe new MI commands. gdb/testsuite/ChangeLog: * gdb.mi/mi-catch-cpp-exceptions.cc: New file. * gdb.mi/mi-catch-cpp-exceptions.exp: New file. * lib/mi-support.exp (mi_expect_stop): Handle 'exception-caught' as a stop reason.
2019-06-15gdb: Don't allow annotations to influence what else GDB printsAndrew Burgess8-45/+52
The annotations should be additional information printed by GDB to be consumed by users (GUIs), but GDB shouldn't reduce what it prints based on whether annotations are on or not. However, this is what happens for annotate_source_line. This commit makes annotate_source_line a void function that simply outputs the annotation information, GDB will then print the contents of the source line to the terminal in the normal way. Some tests needed to be updated after this commit. gdb/ChangeLog: * annotate.c (annotate_source_line): Change return type to void, update implementation to match. * annotate.h (annotate_source_line): Change return type to void, update header comment. * stack.c (print_frame_info): Don't change what frame information is printed based on whether annotations are on or not. gdb/testsuite/ChangeLog: * gdb.base/annota1.exp: Update expected results. * gdb.cp/annota2.exp: Likewise. * gdb.cp/annota3.exp: Likewise.
2019-06-15gdb: Remove an update of current_source_line and current_source_symtabAndrew Burgess6-43/+62
While reviewing some of the annotation code I noticed that identify_source_line (in source.c) sets current_source_line, current_source_symtab, and also calls clear_lines_listed_range. This seems a little strange, identify_source_line is really a wrapper around annotate_source, and is only called when annotation_level is greater than 0 (so annotations are turned on). It seems weird (to me) that when annotations are on we update GDB's idea of the "current" line/symtab, but when they are off we don't, given that annotations are really about communicating GDB's state to a user (GUI) and surely shouldn't be changing GDB's behaviour. This commit removes from identify_source_line all of the setting of current line/symtab and the call to clear_lines_listed_range, after doing this GDB still passes all tests, so I don't believe these lines were actually required. With this code removed identify_source_line is only a wrapper around annotate_source, so I moved identify_source_line to annotate.c and renamed it to annotate_source_line. gdb/ChangeLog: * annotate.c: Add 'source.h' and 'objfiles.h' includes. (annotate_source): Make static. (annotate_source_line): Moved from source.c and renamed from identify_source_line. Update the return type. * annotate.h (annotate_source): Delete declaration. (annotate_source_line): Declaration moved from source.h, and renamed from identify_source_line. Return type updated. * source.c (identify_source_line): Moved to annotate.c and renamed to annotate_source_line. (info_line_command): Remove check of annotation_level. * source.h (identify_source_line): Move declaration to annotate.h and rename to annotate_source_line. * stack.c: Add 'annotate.h' include. (print_frame_info): Remove check of annotation_level before calling annotate_source_line.
2019-06-15gdb: New function to open source file and compute line charpos dataAndrew Burgess4-29/+41
Every place that a symtab's line_charpos data is loaded always follows the same pattern, so create a new function to contain this logic and make use of it throughout GDB. There should be no user visible changes after this commit. gdb/ChangeLog: * source-cache.c (source_cache::get_plain_source_lines): Use open_source_file_with_line_charpos instead of just open_source_file, remove call to find_source_lines. (source_cache::get_source_lines): Likewise. * source.c (find_source_lines): Make static. (get_filename_and_charpos): Renamed into... (open_source_file_with_line_charpos): ..this along with changes to return a scoped_fd, and some other minor clean ups. (identify_source_line): Use open_source_file_with_line_charpos. (search_command_helper): Use open_source_file_with_line_charpos instead of just open_source_file, remove call to find_source_lines. * source.h (open_source_file_with_line_charpos): Declare new function. (find_source_lines): Delete declaration.
2019-06-15gdb: Remove unused parameterAndrew Burgess2-9/+9
The parameter 'fullname' is always passed as NULL to the function get_filename_and_charpos in source.c, so lets remove the parameter. There should be no user visible changes after this commit. gdb/ChangeLog: * source.c (get_filename_and_charpos): Remove fullname parameter. (identify_source_line): Update call to get_filename_and_charpos.
2019-06-15gdb: Remove file path from test nameAndrew Burgess2-1/+6
Having paths in test names makes comparing sum files difficult, rename a test to avoid paths in test names. gdb/testsuite/ChangeLog: * gdb.base/style-logging.exp: Remove path from test name.
2019-06-15Automatic date update in version.inGDB Administrator1-1/+1
2019-06-14Do not emit style escape sequences to log fileTom Tromey7-3/+136
PR gdb/24502 requests that the "set logging" log file not contain style escape sequences emitted by gdb. This seemed like a reasonable request to me, so this patch implements filtering for the log file. This also updates a comment in ui-style.h that I noticed while writing the patch. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> PR gdb/24502: * ui-style.h (skip_ansi_escape): Update comment. * ui-file.h (class no_terminal_escape_file): New class. * ui-file.c (no_terminal_escape_file::write) (no_terminal_escape_file::puts): New methods. * cli/cli-logging.c (handle_redirections): Use no_terminal_escape_file. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> PR gdb/24502: * gdb.base/style-logging.exp: New file.
2019-06-14Minor NEWS rearrangementTom Tromey2-4/+8
I noticed that a NEWS item about Python scripting changes appeared between an item about a convenience function and an item about a convenience variable. I think it's better for the latter to be next to each other. gdb/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * NEWS: Move convenience variable news above Python news.
2019-06-14Move gnulib to top levelTom Tromey333-281/+1420
This patch moves the gdb/gnulib subdirectory to the top level. It adjusts the top-level build system to build gnulib when necessary, and changes gdb to use this. However, gdbserver still builds its own copy of gnulib, just from the new source location. A small hack was needed to ensure that gnulib is only built when gdb is enabled. The Makefile only provides an ordering -- the directory must be mentioned in configdirs to actually be compiled at all. Most of the patch is just a "git mv" of gnulib, though a few minor path adjustments were needed in some files there. Tested by the buildbot. ChangeLog 2019-06-14 Tom Tromey <tom@tromey.com> * MAINTAINERS: Add gnulib. * gnulib: New directory, move from gdb/gnulib. * configure.ac (host_libs): Add gnulib. * configure: Rebuild. * Makefile.def (host_modules, dependencies): Add gnulib. * Makefile.in: Rebuild. gdb/ChangeLog 2019-06-14 Tom Tromey <tom@tromey.com> * gnulib: Move directory to top-level. * configure.ac: Don't configure gnulib. * configure: Rebuild. * common/common-defs.h: Use new path to gnulib. * Makefile.in (GNULIB_BUILDDIR): Now ../gnulib. (GNULIB_H): Remove. (INCGNU): Look in new gnulib location. (HFILES_NO_SRCDIR): Remove gnulib files. (SUBDIR, REQUIRED_SUBDIRS): Remove gnulib. (generated_files): Remove GNULIB_H. ($(LIBGNU), all-lib): Remove targets. (distclean): Don't mention GNULIB_BUILDDIR. ($(GNULIB_BUILDDIR)/Makefile): Remove target. gdb/gdbserver/ChangeLog 2019-06-14 Tom Tromey <tom@tromey.com> * configure.ac: Use new path to gnulib. * configure: Rebuild. * Makefile.in (INCGNU, $(GNULIB_BUILDDIR)/Makefile): Use new path to gnulib. gnulib/ChangeLog 2019-06-14 Tom Tromey <tom@tromey.com> * update-gnulib.sh: Adjust paths. * Makefile.in: Adjust paths. * configure.ac: Adjust paths. Use ACX_LARGEFILE. * configure: Rebuild.
2019-06-14Warn if add-symbol-file does not provide any symbolsTom Tromey5-6/+61
A user suggested that add-symbol-file ought to warn if the file does not in fact provide any symbols. This seemed like a decent idea, so this patch implements this idea. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * symfile.c (add_symbol_file_command): Remove obsolete comment. Warn if symbol file does not provide any symbols. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * gdb.base/symfile-warn.exp: New file. * gdb.base/symfile-warn.c: New file.
2019-06-14Only compute realpath when basenames_may_differ is setTom Tromey4-5/+68
A user noted that, when sources are symlinked, gdb annotations will print the real path, rather than the name of the symlink. It seems to me that it is better to print the name of the file that was actually used in the build, unless there is some reason not to. This patch implements this, with the caveat that it will not work when basenames-may-differ is enabled. The way this mode is currently implemented, returning the symbolic (not real) path is not possible. While I think it would be good to redo the source file name cache and perhaps integrate it with class source_cache, I haven't done so here. Regression tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * source.c (find_and_open_source): Respect basenames_may_differ. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * gdb.base/annotate-symlink.exp: New file.
2019-06-14gdb: Use scoped_restore_terminal_state in annotate.cAndrew Burgess2-16/+8
In a couple of places in annotate.c we are manually backing up and restoring the terminal ownership, we could instead make use of scoped_restore_terminal_state. gdb/ChangeLog: * annotate.c (annotate_breakpoints_invalid): Make use of scoped_restore_terminal_state. (annotate_frames_invalid): Likewise.
2019-06-14Allow re-assigning to convenience variablesTom Tromey4-1/+19
In Ada mode, re-assigning an array of a different size to a convenience variable will cause an error: (gdb) set lang ada (gdb) set $v := "abc" (gdb) set $v := "abcd" cannot assign arrays of different length However, this does not really make sense -- instead, it should always be possible to overwrite a convenience variable. This patch fixes this bug. This was reviewed off-list by Joel. I'm checking it in. gdb/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * ada-lang.c (ada_evaluate_subexp) <case BINOP_ASSIGN>: Always allow assignment to an internalvar. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * gdb.ada/set_wstr.exp: Add reassignment test.
2019-06-14Recognize _ in attribute namesTom Tromey4-9/+20
Ada attribute names can contain "_", but the lexer currently does not allow this -- even though the "attributes" array lists some attributes spelled this way. This patch fixes the bug and adds test cases for the existing attributes. This was reviewed off-list by Joel. I'm checking it in. gdb/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * ada-lex.l: Allow "_" in attribute names. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> * gdb.ada/formatted_ref.exp (test_p_x_addr): Check 'unchecked_access and 'unrestricted_access as well.
2019-06-14Remove alloca(0) callsTom Tromey3-11/+6
PR gdb/24653 points out that a gcc snapshot will complain about the calls to alloca(0) in gdb. These calls are only needed when using the C alloca. I'm inclined to think that no current platform needs this, so this patch removes the calls. Let me know what you think. gdb/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> PR gdb/24653: * regcache.c (registers_changed): Don't call alloca. * top.c (execute_command): Don't call alloca.
2019-06-14Fix gdb.ada/vla.expTom Tromey3-4/+16
PR ada/24539 concerns a test failure in gdb.ada/vla.exp. The problem here is that different versions of Gnat emit the structure's fields in different orders -- with the order currently failing actually being the correct one. Joel pointed out that this can be fixed by simply adding the No_Component_Reordering pragma to the type in question, which is what this patch does. I've reported a Gnat compiler bug internally in hopes of getting the underlying problem fixed. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey <tromey@adacore.com> PR ada/24539: * gdb.ada/vla.exp: Update tests. * gdb.ada/vla/vla.adb (Record_Type): Use No_Component_Reordering pragma.
2019-06-14Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocsSzabolcs Nagy10-3/+63
These ilp32 relocations were missing for some reason. bfd/ChangeLog: * elfnn-aarch64.c: Enable MOVW_PREL relocs for ELF32. include/ChangeLog: * elf/aarch64.h (R_AARCH64_P32_MOVW_PREL_G0): Define. (R_AARCH64_P32_MOVW_PREL_G0_NC): Define. (R_AARCH64_P32_MOVW_PREL_G1): Define. ld/ChangeLog: * testsuite/ld-aarch64/aarch64-elf.exp: Add emit-relocs-22 and -23. * testsuite/ld-aarch64/emit-relocs-22.d: New test. * testsuite/ld-aarch64/emit-relocs-22.s: New test. * testsuite/ld-aarch64/emit-relocs-23.d: New test. * testsuite/ld-aarch64/emit-relocs-23.s: New test.
2019-06-14Updated French translation for the opcodes subdirectory.Nick Clifton2-78/+86
* po/fr.po; Updated French translation.
2019-06-14Regenerate with approved autotools versionAlan Modra16-80/+64
bfd/ * Makefile.in: Regenerate. * configure: Regenerate. binutils/ * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * doc/Makefile.in: Regenerate. gas/ * Makefile.in: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. ld/ * Makefile.in: Regenerate. * configure: Regenerate. libctf/ * configure: Regenerate.
2019-06-14Fix alpha testsuite regressionAlan Modra4-4/+11
readelf st_other display improved for alpha. PR 24662 * testsuite/ld-alpha/tlsbin.rd: Update. * testsuite/ld-alpha/tlsbinr.rd: Update. * testsuite/ld-alpha/tlspic.rd: Update.
2019-06-14PowerPC comment fixesAlan Modra2-5/+9
"paddi rt,sym@pcrel" as an abbreviation for "paddi rt,0,sym@pcrel,1" is invalid, so replace with "pla rt,sym@pcrel" which is a valid form of "pla rt,sym@pcrel(0),1". * elf64-ppc.c: Fix comments involving paddi.
2019-06-14Automatic date update in version.inGDB Administrator1-1/+1
2019-06-13Fix "set integer-command unlimited junk"Pedro Alves4-4/+43
With integer commands that support "unlimited", we currently fail to notice junk after "unlimited": (gdb) show print elements Limit on string chars or array elements to print is 200. (gdb) set print elements unlimited foo (gdb) show print elements Limit on string chars or array elements to print is unlimited. This commit fixes that. After, we get: (gdb) set print elements unlimited foo Junk after "unlimited": foo gdb/ChangeLog: 2019-06-13 Pedro Alves <palves@redhat.com> * cli/cli-setshow.c (cli/cli-setshow.c): New parameter 'expression'. When parsing an expression, error out if there's junk after "unlimited". (parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited) (do_set_command): Adjust calls to is_unlimited_literal. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves <palves@redhat.com> * gdb.base/settings.exp (test-integer): Test junk after "unlimited".
2019-06-13sim/testsuite/or1k: Add tests for unordered comparesStafford Horne3-0/+202
Add tests for 32-bit and 64-bit unordered compare instructions. sim/testsuite/sim/or1k/ChangeLog: yyyy-mm-dd Stafford Horne <shorne@gmail.com> * fpu-unordered.S: New file. * fpu64a32-unordered.S: New file.
2019-06-13sim/testsuite/or1k: Add test case for l.adrp instructionStafford Horne2-0/+77
This is a simple test to ensure that the l.adrp instruction can be assembled and simulated correctly. sim/testsuite/sim/or1k/ChangeLog: yyyy-mm-dd Stafford Horne <shorne@gmail.com> * adrp.S: New file.
2019-06-13sim/testsuite/or1k: Add test for 64-bit fpu operationsStafford Horne2-0/+176
This is a very basic test but it ensure the machine is wired up correctly and that the assembler works. sim/testsuite/sim/or1k/ChangeLog: yyyy-mm-dd Stafford Horne <shorne@gmail.com> * fpu64a32.S: New file.
2019-06-13sim/common: wire up new unordered comparisonsStafford Horne3-0/+33
Define and wire up unordered floating point comparison operations for cgen targets. This patch depends on my posted cgen patches[0]. [0] https://www.sourceware.org/ml/cgen/2019-q2/msg00013.html sim/common/ChangeLog: yyyy-mm-dd Stafford Horne <shorne@gmail.com> * cgen-accfp.c (unorderedsf, unordereddf): New functions. (cgen_init_accurate_fpu): Wire up unorderedsf and unordereddf. * cgen-fpu.h (cgen_fp_ops): Define fields unorderedsf and unordereddf.
2019-06-13sim/common: Wire in df/di conversionStafford Horne2-0/+29
Up until now these have not been used in any CGEN targets, add them as they are now used by OpenRISC. sim/common/ChangeLog: * cgen-accfp.c (floatdidf, fixdfdi): New functions. (cgen_init_accurate_fpu): Add floatdidf and fixdfdi.
2019-06-13sim/or1k: Regenerate simStafford Horne11-179/+2988
This picks up changes for: - new orfpx64a32 spec - new unordered instructions - documentation and symbol updates sim/ChangeLog: * or1k/cpu.c: Regenerate. * or1k/cpu.h: Regenerate. * or1k/decode.c: Regenerate. * or1k/decode.h: Regenerate. * or1k/model.c: Regenerate. * or1k/sem-switch.c: Regenerate. * or1k/sem.c: Regenerate.
2019-06-13Fix gdb build with -std=gnu++11Pedro Alves3-4/+11
The options framework series broken the build with gcc 4.8, or any other compiler were we end up forcing -std=gnu++11, causing errors like these: ../../binutils-gdb/gdb/compile/compile.c: In function gdb::option::option_def_group make_compile_options_def_group(compile_options*): ../../binutils-gdb/gdb/compile/compile.c:266:44: error: could not convert (const gdb::option::option_def*)(& compile_command_option_defs) from const gdb::option::option_def* to gdb::array_view<const gdb::option::option_def> return {compile_command_option_defs, opts}; ^ CXX copying.o ../../binutils-gdb/gdb/compile/compile.c:267:1: error: control reaches end of non-void function [-Werror=return-type] } ^ This is a C++11 vs C++14 difference -- C++14 relaxed the rules for eliding braces. This commit fixes it by adding the missing (in C++11) braces. Tested with g++ 4.8. gdb/ChangeLog: 2019-06-13 Pedro Alves <palves@redhat.com> * compile/compile.c (make_compile_options_def_group): Add braces around array_view initializer. * thread.c (make_thread_apply_all_options_def_group) (make_thread_apply_all_options_def_group): Likewise.
2019-06-13Automatic date update in version.inGDB Administrator1-1/+1
2019-06-13NEWS and manual changes for command options changesPedro Alves4-34/+415
gdb/ChangeLog: 2019-06-13 Pedro Alves <palves@redhat.com> * NEWS (New commands): Mention "maint test-options require-delimiter", "maint test-options unknown-is-error", "maint test-options unknown-is-operand" and "maint show test-options-completion-result". (New command options, command completion): New section. (Completion improvements): New section. Mention that you can abbreviate "unlimited". gdb/doc/ChangeLog: 2019-06-13 Pedro Alves <palves@redhat.com> * gdb.texinfo (Command Completion): Mention command options too. (Command Options): New node. (Threads): Add anchors. Extend descriptions of the "taas" and "tfaas" commands. (Backtrace): Describe new options of the "backtrace" command. Add anchors. (Frame Apply): Describe new options of the "frame apply" and "faas" commands. Add anchors. (Data): Describe new options of the "print" command. Add anchors. (Compiling and Injecting Code): Mention options of the "compile print" command. (Maintenance Commands): Mention "maint test-options" subcommands and the "maint show test-options-completion-result" command.
2019-06-13Delete parse_flags/parse_flags_qcsPedro Alves4-219/+8
Now that "thread/frame apply" have been converted to the gdb::option framework, these functions are no longer used. For a while, I thought about keeping the unit tests, by making a local version of parse_flags_qcs in the unit tests file. But all that would really test that is used by GDB itself, is the validate_flags_qcs function. So in the end, I went through all the unit tests, and converted any that wasn't already covered to gdb.base/options.exp tests. And those have all already been added in previous patches. gdb/ChangeLog: 2019-06-13 Pedro Alves <palves@redhat.com> * cli/cli-utils.c (parse_flags, parse_flags_qcs): Delete. * cli/cli-utils.h (parse_flags, parse_flags_qcs): Delete. * unittests/cli-utils-selftests.c (test_parse_flags) (test_parse_flags_qcs): Delete. (test_cli_utils): Don't call deleted functions.