From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 58030 invoked by alias); 15 Aug 2015 10:01:58 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 58012 invoked by uid 9674); 15 Aug 2015 10:01:58 -0000 Date: Sat, 15 Aug 2015 10:01:00 -0000 Message-ID: <20150815100157.57901.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] jankratochvil/gdbserverbuildid: sticky X-Git-Refname: refs/heads/jankratochvil/gdbserverbuildid X-Git-Reftype: branch X-Git-Oldrev: d2ef8af905e3c800284385c8690da040302328ae X-Git-Newrev: 7a947a6bd868ee8559dca4a2b16b894ea654b8fd X-SW-Source: 2015-q3/txt/msg00031.txt.bz2 List-Id: The branch, jankratochvil/gdbserverbuildid has been updated discards d2ef8af905e3c800284385c8690da040302328ae (commit) discards 8f5e9db1cf58809678aab42fa58c37f03029e630 (commit) discards e53bb70e546bd8c522b699f7dd1c39795534eade (commit) discards e2a7020361598cf9b3e6fa54d7d0bcea78e9fae6 (commit) discards 6a4c1b31f5bf5e796336de40689bbd4bfc047a5e (commit) discards 7364e72a472c8f95977aec0b8804cf42dcd86eb2 (commit) discards ad2f3404e4a1666cf691566f41c33e1adb45817d (commit) discards d9eb82ccf176f569cf9b1bea4d057372abd8be7b (commit) discards 1da182968922bded291ef015b2e9ae098021de43 (commit) discards 3011db9cf05c1553bb7e227687190c0f26b32c58 (commit) discards 3ea6568826aaa1dc73f2ed9cea77dbd763e0633e (commit) discards cd1049766a086d465a13f60db4b1b1ba2ff0e2c2 (commit) discards 3e4d2a0385640ed6c9a5edd0a4a07ec1483ed6de (commit) discards 6545df5ecd569693f1c201206a2501d249bdc6a8 (commit) discards a6d3a59c67567e73474c5944ee058480bb759a89 (commit) discards fc9bc2b2606abb979bf3aae46464a86472158e71 (commit) discards e5b168bf9555d5f4d4f870c9db4d71d41ab2f35d (commit) discards 83b9bd71abd6eebb7f096e05e6d28cd2209765a1 (commit) discards ae70d8fa734033d1e197a8ce21bc82c393e9bfdd (commit) discards 8f6abda46262ef44b8f448be3643ea502288f3ee (commit) discards 3eaf8395d993ffd039863c5d61f77c59b27cdd4b (commit) discards 629f7538f1c705deefe237b87153597e8bf6b4b1 (commit) discards fb1352c863ab57bef975d9826efb4de0a7a49e63 (commit) discards e655914ce35a288d78848a6126b911e874d0f23e (commit) discards 02f3bfabeb4b3d8aefc23c5e0a7e9229c2da0c1a (commit) discards 90721dfec76d65d29ac5fbf49c5718bd850abe41 (commit) discards ce4a423657022eb9dca3552b287e8db3a8bae5de (commit) discards 208dacff86eca30c3f5990905f66f18e19ffbb57 (commit) discards b5d50914f4202b1f15df5e6c1b4868726dc5f43c (commit) discards bce282542cdcc386678a05f66a3aae1cac40f39d (commit) discards 88e1a37952d639ba05a92032e3a0d94ab466bed4 (commit) discards f8688948e2ef7e8ccc1899ab34a824d9904ef469 (commit) discards 257ed7ddfe7b6eeccc1782ed3b6c5a8e1a10e951 (commit) discards 7a460e688c25393f8bde0d9ee51be0475e40b169 (commit) via 7a947a6bd868ee8559dca4a2b16b894ea654b8fd (commit) via ad89a2f824135c905c231a78d9627e6589bb4a95 (commit) via 4874f3b58bb2c74b62ec7227fbe41386fb5d8007 (commit) via 5353e034a77740ff0ef0ee48eb9d0f7af01e8307 (commit) via 82e9f636c521d9ecdf804a9072170177e8e793b3 (commit) via cd79c4492a000a36649464257cea46def250391c (commit) via 08ad08f1e4305221a4513ec87e1d5d085c3d4fab (commit) via 177660d6a8d4f4ba1660fc61b49da42cdf96eb9e (commit) via 8db972fd3127ea419267b3b235cd7b00b9fe875d (commit) via a3b70f44851d42fc06a9f94b01ab687440ea19c2 (commit) via c4c90a0f7bc8317cb962c499ede1208790a9253a (commit) via c4ef17e38205ff1559a58e3bdd5f6ef92ecda89b (commit) via 0d00d3a8d93e6ac23d29c7c8e53f1dfc1666a822 (commit) via 4600db9a5cc528a655a1ebe92d477209d7146800 (commit) via c1d8b72d24a6123eb8648bdbc1b2e3a56e282bc6 (commit) via 87d3c70eb6acd1584f17ff27dbfa7853fe0ea9ed (commit) via 2fce2213eba7e5446979a0ce2d032b1acb621aaf (commit) via 12f3de0ea0fb4c5d60f5fad73c6f054bd1e0fea1 (commit) via 8db0b61178445252d6c43384784728b71b7f3f05 (commit) via e600bf60a682090eb325052245a7c79aba73ff77 (commit) via 99c41f79be7c1437c8499d632fd13e8ae7d36c32 (commit) via 06214010ff8650436a4021a8536af52a19e4c748 (commit) via 418b022857bb6be73630d795ff6ccb818145a566 (commit) via 79df217f6235b3fc200668fd39dfe38df1dafc44 (commit) via 47c49eb97dcc9ff751e977d5a57f48e27333c59d (commit) via 4ab6b65563fb705f0dc5a45396e429995f6dd25c (commit) via e67b73dbb7068902c37ef2e08caf3e0f70421832 (commit) via 73ed2df5ca2a88300086c72adf5cf88961c3e0dd (commit) via e9100478ca7b48f167372bc4c0578df868cc5302 (commit) via d68335080a1989970d4a5dfcd16d32954f7b520d (commit) via 47498547bc0aa3debec59ad458a18a5612bc9604 (commit) via 89fa75c615cbd3ebb1e3c804ba7f51d2682d5ca6 (commit) via 6d7d4da8f7097b4dd84029ed20ca9272622a64f2 (commit) via cfeca82d7f630591c93f1a47b84742294aa84a57 (commit) via 604b263620af66e3bf881f146e329b4de06104a5 (commit) via 6ff0ba5f7b8a2b10642bbb233a32043595c55670 (commit) via b56ccc202ab674998baf52a710d736702734f9ab (commit) via a057aa3c457ba38ca25ff1ed13a30c629bb0f259 (commit) via ebdad8fc7fd12b52a2dd14cdca735728b2f7ebc7 (commit) via 9ca98f927800a8446555e3f64cc3437c08ce266b (commit) via 6613eb10d10ee79ef09bf4dfe696586f479c8d02 (commit) via c0fe2ae7064c4f927034aca87913bc28920721d9 (commit) via a738da3abe2bc02d70521086cf1d0e23565b8fbe (commit) via f8edc4ff051b4e29997681cb3bc9078d98f4d457 (commit) via 9b57267f4ffa4f8a168f89630a4b68fb51a419de (commit) via 92019596ba7df7156ac634abf3ae82738dc5ba55 (commit) via 444c1ed8915961384af694249701fa7896e11da8 (commit) via bc7c9fab612d4d33f7fe5d17eef4f5bd5cdc4144 (commit) via 52bbc560524ec3691203eccd05207d13913a1e35 (commit) via 3207396b9532f179bad24a9fb9a83253f3f5144d (commit) via 67994074671a31e3d2fb78f6036f38095211ac49 (commit) from d2ef8af905e3c800284385c8690da040302328ae (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7a947a6bd868ee8559dca4a2b16b894ea654b8fd Author: Jan Kratochvil Date: Thu Aug 13 16:17:20 2015 +0200 sticky Message-Id: <1433754079-10395-1-git-send-email-gbenson@redhat.com> Philippe Waroquiers wrote: > On Fri, 2015-06-05 at 12:22 +0100, Gary Benson wrote: > > Built and regtested on RHEL6.6 x86_64. > I tested with the last SVN version of the Valgrind gdbserver (that > supports qXfer:exec-file:read+). > > The patch introduces a regression: > with the patch, GDB does not anymore automatically load the > exec-file. > > I bypassed this problem by ignoring fake_pid_p in remote.c: > --- a/gdb/remote.c > +++ b/gdb/remote.c > @@ -1624,9 +1624,13 @@ remote_add_inferior (int fake_pid_p, int pid, int > attached, > inf->attach_flag = attached; > inf->fake_pid_p = fake_pid_p; > > - /* If no main executable is currently open then attempt to > - open the file that was executed to create this inferior. */ > - if (try_open_exec && get_exec_file (0) == NULL) > + /* Attempt to open the file that was executed to create this > + inferior. If the user has explicitly specified executable > + and/or symbol files then warn the user if their choices do > + not match. Otherwise, set exec_file and symfile_objfile to > + the new file. */ > + printf("fake_pid_p %d\n", fake_pid_p); > + if (try_open_exec)// && !fake_pid_p) > exec_file_locate_attach (pid, 1); > > Effectively, the printf shows that with Valgrind gdbsrv, > fake_pid_p value is 1. > > When ignoring fake_pid_p, GDB can properly attach > to different Valgrind gdbsrv, and changes of executable > as expected. Ah, it seems I mailed a bad patch, my apologies! I was working on two fixes that touched the same line, and it looks like I rebased them in the wrong order. This updated patch has been created against the latest gdb/master (80fb91378c91a8239817a5ab2b1c3e346109db25). Could you please try your tests again? Thanks, Gary --- On attach, GDB will only attempt to determine the main executable's filename if one is not already set. This causes problems if you attach to one process and then attach to another: GDB will not attempt to discover the main executable on the second attach. If the two processes have different main executable files then the symbols will now be wrong. This is PR gdb/17626. In GDB some filenames are supplied by the user (e.g. using the "file" or "symbol-file" commands) and some are determined by GDB (e.g. while processing an "attach" command). This commit updates GDB to track which filenames were supplied by the user. When GDB might attempt to determine an executable filename and one is already set, filenames determined by GDB may be overridden but user-supplied filenames will not. gdb/ChangeLog: PR gdb/17626 * progspace.h (struct program_space) : New field. : Likewise. (symfile_objfile_is_user_supplied): New macro. * exec.h (exec_file_is_user_supplied): Likewise. * exec.c (exec_close): Clear exec_file_is_user_supplied. (exec_file_locate_attach): Remove get_exec_file check. Do not replace user-supplied executable or symbol files. Warn if user-supplied executable or symbol files do not match discovered file. (exec_file_command): Set exec_file_is_user_supplied. * symfile.c (symbol_file_clear): Clear symfile_objfile_is_user_supplied. (symbol_file_command): Set symfile_objfile_is_user_supplied. * inferior.c (add_inferior_command): Set exec_file_is_user_supplied and symfile_objfile_is_user_supplied. * main.c (captured_main): Likewise. * infcmd.c (attach_command_post_wait): Always call exec_file_locate_attach. Only call reopen_exec_file and reread_symbols if exec_file_is_user_supplied. * remote.c (remote_add_inferior): Remove get_exec_file check around exec_file_locate_attach. commit ad89a2f824135c905c231a78d9627e6589bb4a95 Author: Jan Kratochvil Date: Thu Aug 13 16:17:19 2015 +0200 mainbuildid commit 4874f3b58bb2c74b62ec7227fbe41386fb5d8007 Author: Jan Kratochvil Date: Thu Aug 13 16:17:19 2015 +0200 hexallocate commit 5353e034a77740ff0ef0ee48eb9d0f7af01e8307 Author: Jan Kratochvil Date: Thu Aug 13 16:17:19 2015 +0200 locatetest commit 82e9f636c521d9ecdf804a9072170177e8e793b3 Author: Jan Kratochvil Date: Thu Aug 13 16:17:19 2015 +0200 Tests for validate symbol file using build-id New testcase. gdb/testsuite/ChangeLog 2015-07-15 Aleksandar Ristovski Date: Thu Aug 13 16:17:18 2015 +0200 buildidwarn commit 08ad08f1e4305221a4513ec87e1d5d085c3d4fab Author: Jan Kratochvil Date: Thu Aug 13 16:17:18 2015 +0200 buildidsolibbfdopen commit 177660d6a8d4f4ba1660fc61b49da42cdf96eb9e Author: Jan Kratochvil Date: Thu Aug 13 16:17:18 2015 +0200 buildidverify commit 8db972fd3127ea419267b3b235cd7b00b9fe875d Author: Jan Kratochvil Date: Thu Aug 13 16:17:18 2015 +0200 buildidsolibsearch commit a3b70f44851d42fc06a9f94b01ab687440ea19c2 Author: Jan Kratochvil Date: Thu Aug 13 16:17:18 2015 +0200 buildidtofile commit c4c90a0f7bc8317cb962c499ede1208790a9253a Author: Jan Kratochvil Date: Thu Aug 13 16:17:17 2015 +0200 buildidproto commit c4ef17e38205ff1559a58e3bdd5f6ef92ecda89b Author: Jan Kratochvil Date: Thu Aug 13 16:17:17 2015 +0200 buildidtobfd commit 0d00d3a8d93e6ac23d29c7c8e53f1dfc1666a822 Author: Jan Kratochvil Date: Thu Aug 13 16:17:17 2015 +0200 buildidforcemove commit 4600db9a5cc528a655a1ebe92d477209d7146800 Author: Jan Kratochvil Date: Thu Aug 13 16:17:17 2015 +0200 buildidfreefix commit c1d8b72d24a6123eb8648bdbc1b2e3a56e282bc6 Author: Jan Kratochvil Date: Thu Aug 13 16:17:16 2015 +0200 openpsymfile commit 87d3c70eb6acd1584f17ff27dbfa7853fe0ea9ed Author: Jan Kratochvil Date: Thu Aug 13 16:17:16 2015 +0200 openpsolib commit 2fce2213eba7e5446979a0ce2d032b1acb621aaf Author: Jan Kratochvil Date: Thu Aug 13 16:17:16 2015 +0200 openp commit 12f3de0ea0fb4c5d60f5fad73c6f054bd1e0fea1 Author: Jan Kratochvil Date: Thu Aug 13 16:17:16 2015 +0200 filelib commit 8db0b61178445252d6c43384784728b71b7f3f05 Author: Jan Kratochvil Date: Thu Aug 13 16:17:15 2015 +0200 openfromtargetdoclose commit e600bf60a682090eb325052245a7c79aba73ff77 Author: Jan Kratochvil Date: Thu Aug 13 16:17:15 2015 +0200 openfromtargetfd commit 99c41f79be7c1437c8499d632fd13e8ae7d36c32 Author: Jan Kratochvil Date: Thu Aug 13 16:17:15 2015 +0200 openfromtarget commit 06214010ff8650436a4021a8536af52a19e4c748 Author: Jan Kratochvil Date: Thu Aug 13 16:17:14 2015 +0200 openpnullpathname commit 418b022857bb6be73630d795ff6ccb818145a566 Author: Jan Kratochvil Date: Thu Aug 13 16:17:14 2015 +0200 openpmode commit 79df217f6235b3fc200668fd39dfe38df1dafc44 Author: Jan Kratochvil Date: Thu Aug 13 16:17:14 2015 +0200 openppath commit 47c49eb97dcc9ff751e977d5a57f48e27333c59d Author: Jan Kratochvil Date: Thu Aug 13 16:17:13 2015 +0200 openpenum commit 4ab6b65563fb705f0dc5a45396e429995f6dd25c Author: Jan Kratochvil Date: Thu Aug 13 16:17:13 2015 +0200 sysrootdefault commit e67b73dbb7068902c37ef2e08caf3e0f70421832 Author: Jan Kratochvil Date: Thu Aug 13 16:17:13 2015 +0200 sysrootdelim commit 73ed2df5ca2a88300086c72adf5cf88961c3e0dd Author: Jan Kratochvil Date: Thu Aug 13 16:17:12 2015 +0200 sysrootconst commit e9100478ca7b48f167372bc4c0578df868cc5302 Author: Jan Kratochvil Date: Sat Aug 15 11:38:53 2015 +0200 Validate symbol file using build-id Consumer part of the "build-id" attribute. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski Validate symbol file using build-id. * NEWS (Changes since GDB 7.10): Add 'set validate-build-id' and 'show validate-build-id'. Add build-id attribute. * solib-darwin.c (_initialize_darwin_solib): Assign validate value. * solib-dsbt.c (_initialize_dsbt_solib): Ditto. * solib-frv.c (_initialize_frv_solib): Ditto. * solib-spu.c (set_spu_solib_ops): Ditto. * solib-svr4.c: Include rsp-low.h. (NOTE_GNU_BUILD_ID_NAME): New define. (svr4_validate): New function. (svr4_copy_library_list): Duplicate field build_id. (library_list_start_library): Parse 'build-id' attribute. (svr4_library_attributes): Add 'build-id' attribute. (_initialize_svr4_solib): Assign validate value. * solib-target.c (solib.h): Include. (_initialize_solib_target): Assign validate value. * solib.c (validate_build_id, show_validate_build_id): New. (solib_map_sections): Use ops->validate. (clear_so): Free build_id. (default_solib_validate): New function. (_initialize_solib): Add "validate-build-id". * solib.h (default_solib_validate): New declaration. * solist.h (struct so_list): New fields 'build_idsz' and 'build_id'. (target_so_ops): New field 'validate'. gdb/doc/ChangeLog 2015-07-15 Jan Kratochvil * gdb.texinfo (Files): Add 'set validate-build-id' and 'show validate-build-id'. commit d68335080a1989970d4a5dfcd16d32954f7b520d Author: Jan Kratochvil Date: Sat Aug 15 11:38:52 2015 +0200 gdbserver build-id attribute generator Producer part of the new "build-id" XML attribute. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski gdbserver build-id attribute generator. * features/library-list-svr4.dtd (library-list-svr4): New 'build-id' attribute. gdb/doc/ChangeLog 2015-07-15 Aleksandar Ristovski gdbserver build-id attribute generator. * gdb.texinfo (Library List Format for SVR4 Targets): Add 'build-id' in description, example, new attribute in dtd. gdb/gdbserver/ChangeLog 2015-07-15 Aleksandar Ristovski gdbserver build-id attribute generator. * linux-low.c (linux-maps.h, search.h, rsp-low.h): Include. (ElfXX_Ehdr, ElfXX_Phdr, ElfXX_Nhdr): New. (ELFXX_FLD, ELFXX_SIZEOF, ELFXX_ROUNDUP, BUILD_ID_INVALID): New. (find_phdr): New. (get_dynamic): Use find_pdhr to traverse program headers. (struct mapping_entry, mapping_entry_s, free_mapping_entry_vec) (compare_mapping_entry_range, struct find_memory_region_callback_data) (read_build_id, find_memory_region_callback, lrfind_mapping_entry) (get_hex_build_id): New. (linux_qxfer_libraries_svr4): Add optional build-id attribute to reply XML document. commit 47498547bc0aa3debec59ad458a18a5612bc9604 Author: Jan Kratochvil Date: Sat Aug 15 11:38:52 2015 +0200 Move linux_find_memory_regions_full & co. This should be just a move with no changes. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski Move linux_find_memory_regions_full & co. * linux-tdep.c (linux-maps.h): Include. (gdb_regex.h): Remove the include. (enum filterflags, struct smaps_vmflags, read_mapping, decode_vmflags) (mapping_is_anonymous_p, dump_mapping_p): Moved to common/linux-maps.c. (linux_find_memory_region_ftype): Moved typedef to common/linux-maps.h. (linux_find_memory_regions_full): Moved definition to common/linux-maps.c. * common/linux-maps.c: Include ctype.h, target/target-utils.h, gdb_regex.h and target/target.h. (struct smaps_vmflags, read_mapping, decode_vmflags) (mapping_is_anonymous_p, dump_mapping_p): Move from linux-tdep.c. (linux_find_memory_regions_full): Move from linux-tdep.c. * common/linux-maps.h (read_mapping): New declaration. (linux_find_memory_region_ftype, enum filterflags): Moved from linux-tdep.c. (linux_find_memory_regions_full): New declaration. * target.c (target/target-utils.h): Include. (read_alloc_pread_ftype): Moved typedef to target/target-utils.h. (read_alloc, read_stralloc_func_ftype, read_stralloc): Moved definitions to target/target-utils.c. * target.h (target_fileio_read_stralloc): Move it to target/target.h. * target/target-utils.c (read_alloc, read_stralloc): Move definitions from target.c. * target/target-utils.h (read_alloc_pread_ftype): New typedef. (read_alloc): New declaration. (read_stralloc_func_ftype): New typedef. (read_stralloc): New declaration. * target/target.h (target_fileio_read_stralloc): Move it from target.h. gdb/gdbserver/ChangeLog 2015-07-15 Aleksandar Ristovski * target.c: Include target/target-utils.h and fcntl.h. (target_fileio_read_stralloc_1_pread, target_fileio_read_stralloc_1) (target_fileio_read_stralloc): New functions. commit 89fa75c615cbd3ebb1e3c804ba7f51d2682d5ca6 Author: Jan Kratochvil Date: Sat Aug 15 11:38:52 2015 +0200 Prepare linux_find_memory_regions_full & co. for move Prepare code for move into gdb/common/. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski Prepare linux_find_memory_regions_full & co. for move. * linux-tdep.c (linux_find_memory_region_ftype): Comment. (linux_find_memory_regions_full): Change signature and prepare for moving to linux-maps. (linux_find_memory_regions_data): Rename field 'obfd' to 'data'. (linux_find_memory_regions_thunk): New. (linux_find_memory_regions_thunk): Use 'data' field instead of 'obfd'. (linux_find_memory_regions_gdb): New. (linux_find_memory_regions): Rename argument 'obfd' to 'func_data'. (linux_make_mappings_corefile_notes): Use linux_find_memory_regions_gdb. * target.c (read_alloc_pread_ftype): New typedef. (target_fileio_read_alloc_1_pread): New function. (read_alloc): Refactor from target_fileio_read_alloc_1. (read_stralloc_func_ftype): New typedef. (target_fileio_read_alloc_1): New implementation. Use read_alloc. (read_stralloc): Refactored from target_fileio_read_stralloc. (target_fileio_read_stralloc): New implementation, use read_stralloc. commit 6d7d4da8f7097b4dd84029ed20ca9272622a64f2 Author: Jan Kratochvil Date: Sat Aug 15 11:38:52 2015 +0200 Move gdb_regex* to common/ Later patches need regex support also in gdbserver. gdb/ChangeLog 2015-07-15 Jan Kratochvil * Makefile.in (HFILES_NO_SRCDIR): Change gdb_regex.h to common/gdb_regex.h. (COMMON_OBS): Add gdb_regex.o. (gdb_regex.o): New. * common/common.m4 (GDB_AC_COMMON): Add gdb_use_included_regex, --without-included-regex and USE_INCLUDED_REGEX. * common/gdb_regex.c: New file from utils.c functions. * common/gdb_regex.h: Move it here from gdb_regex.h, update include file wrapping define name. * configure: Rebuilt. * configure.ac (gdb_use_included_regex, --without-included-regex) (USE_INCLUDED_REGEX): Move them to common/common.m4. * gdb_regex.h: Move it to common/gdb_regex.h. * utils.c: Remove include gdb_regex.h. (do_regfree_cleanup, make_regfree_cleanup, get_regcomp_error) (compile_rx_or_error): Move them to common/gdb_regex.c. gdb/gdbserver/ChangeLog 2015-07-15 Jan Kratochvil * Makefile.in (OBS): Add gdb_regex.o. (gdb_regex.o): New. * config.in: Rebuilt. * configure: Rebuilt. commit cfeca82d7f630591c93f1a47b84742294aa84a57 Author: Jan Kratochvil Date: Sat Aug 15 11:38:51 2015 +0200 Create empty common/linux-maps.[ch] and common/target-utils.[ch] Prepare new files for later move. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski Create empty common/linux-maps.[ch] and common/target-utils.[ch]. * Makefile.in (ALL_TARGET_OBS): Add linux-maps.o. (HFILES_NO_SRCDIR); Add common/linux-maps.h, common/target-utils.h. (COMMON_OBS): Add target-utils.o. (linux-maps.o, target-utils.o): New. * target/target-utils.c: New file. * target/target-utils.h: New file. * common/linux-maps.c: New file. * common/linux-maps.h: New file. * configure.tgt (aarch64*-*-linux*, alpha*-*-linux*) (am33_2.0*-*-linux*, arm*-*-linux*, bfin-*-*linux*, cris*, frv-*-*) (hppa*-*-linux*, i[34567]86-*-linux*, ia64-*-linux*, m32r*-*-linux*) (m68*-*-linux*, microblaze*-linux-*, microblaze*-*-linux*) (mips*-*-linux*, nios2*-*-linux*, powerpc*-*-linux*, s390*-*-linux*) (sh*-*-linux*, sparc-*-linux*, sparc64-*-linux*, tic6x-*-*linux) (tilegx-*-linux*, x86_64-*-linux*, xtensa*-*-linux*): Add linux-maps.o to gdb_target_obs. gdb/gdbserver/ChangeLog 2015-07-15 Aleksandar Ristovski Create empty common/linux-maps.[ch] and common/target-utils.[ch]. * Makefile.in (OBS): Add target-utils.o. (linux-maps.o, target-utils.o): New. * configure.srv (srv_linux_obj): Add linux-maps.o. commit 604b263620af66e3bf881f146e329b4de06104a5 Author: Doug Evans Date: Fri Aug 14 23:29:04 2015 -0700 perftest/utils.py (select_file): Kill any existing inferior before selecting a new file. gdb/testsuite/ChangeLog: * gdb.perf/lib/perftest/utils.py (select_file): Kill any existing inferior before selecting a new file. commit 6ff0ba5f7b8a2b10642bbb233a32043595c55670 Author: Doug Evans Date: Fri Aug 14 21:45:54 2015 -0700 New /s modifier for the disassemble command. The "source centric" /m option to the disassemble command is often unhelpful, e.g., in the presence of optimized code. This patch adds a /s modifier that is better. For one, /m only prints instructions from the originating source file, leaving out instructions from e.g., inlined functions from other files. gdb/ChangeLog: PR gdb/11833 * NEWS: Document new /s modifier for the disassemble command. * cli/cli-cmds.c (disassemble_command): Add support for /s. (_initialize_cli_cmds): Update online docs of disassemble command. * disasm.c: #include "source.h". (struct deprecated_dis_line_entry): Renamed from dis_line_entry. All uses updated. (dis_line_entry): New struct. (hash_dis_line_entry, eq_dis_line_entry): New functions. (allocate_dis_line_table): New functions. (maybe_add_dis_line_entry, line_has_code_p): New functions. (dump_insns): New arg end_pc. All callers updated. (do_mixed_source_and_assembly_deprecated): Renamed from do_mixed_source_and_assembly. All callers updated. (do_mixed_source_and_assembly): New function. (gdb_disassembly): Handle /s (DISASSEMBLY_SOURCE). * disasm.h (DISASSEMBLY_SOURCE_DEPRECATED): Renamed from DISASSEMBLY_SOURCE. All uses updated. (DISASSEMBLY_SOURCE): New macro. * mi/mi-cmd-disas.c (mi_cmd_disassemble): New modes 4,5. gdb/doc/ChangeLog: * gdb.texinfo (Machine Code): Update docs for mixed source/assembly disassembly. (GDB/MI Data Manipulation): Update docs for new disassembly modes. gdb/testsuite/ChangeLog: * gdb.mi/mi-disassemble.exp: Update. * gdb.base/disasm-optim.S: New file. * gdb.base/disasm-optim.c: New file. * gdb.base/disasm-optim.h: New file. * gdb.base/disasm-optim.exp: New file. commit b56ccc202ab674998baf52a710d736702734f9ab Author: Keith Seitz Date: Fri Aug 14 17:28:11 2015 -0700 Rename `typename' in d-exp.y to avoid C++ reserved word A recent patch introduced a variable named `typename' into d-exp.y, and one of the --enable-with-cxx build slaves consequently failed to compile this. This patch simply adds an underscore into the name to avoid the reserved word. gdb/ChangeLog * d-exp.y (PrimaryExpression : TypeExp '.' IdentifierExp): Rename `typename' to `type_name' to avoid C++ reserved word. commit a057aa3c457ba38ca25ff1ed13a30c629bb0f259 Author: GDB Administrator Date: Sat Aug 15 00:00:07 2015 +0000 Automatic date update in version.in commit ebdad8fc7fd12b52a2dd14cdca735728b2f7ebc7 Author: Keith Seitz Date: Fri Aug 14 15:00:04 2015 -0700 Rename location accessor macro parameters to silence ARI The locations patch I recently committed contains macro definitions such as: This causes an ARI error to be emitted by the server ("Do not use PTR, ISO C 90 implies `void *'"). While this ARI error is bogus in this context, it is just easiest to squash the error completely by renaming the macro parameters. gdb/ChangeLog * location.c (EL_TYPE, EL_LINESPEC, EL_PROBE, EL_ADDRESS) (EL_EXPLICIT, EL_STRING): Change macro parameter to "P" to silence ARI errors. commit 9ca98f927800a8446555e3f64cc3437c08ce266b Author: Keith Seitz Date: Fri Aug 14 14:54:37 2015 -0700 Add missing ChangeLog entry for previous commit. commit 6613eb10d10ee79ef09bf4dfe696586f479c8d02 Author: Keith Seitz Date: Fri Aug 14 13:45:06 2015 -0700 mi_make_breakpoint: add "evaluated-by" option For some time now, GDB has permitted target-side evaluation of breakpoint conditions. On targets that support this feature, GDB may output an "evaluated-by" field into the breakpoint reply. This patch adds handling for this option, and outputs a default pattern to optionally recognize (and ignore) this pattern in the reply. gdb/testsuite/ChangeLog * lib/mi-support.exp (mi_make_breakpoint): Add option/handling for "evaluated-by". commit c0fe2ae7064c4f927034aca87913bc28920721d9 Author: Iain Buclaw Date: Fri Aug 14 21:25:17 2015 +0200 Fix ARI warnings in d-exp.y This fixes four ARI warnings found in d-exp.y. This is comprised of three uses of the && or || at the end of a line, and one use of sprintf. gdb/ChangeLog * d-exp.y (PrimaryExpression : TypeExp '.' IdentifierExp): Use xstrprintf instead of malloc and sprintf. (PrimaryExpression : IdentifierExp): Avoid operator at end of line. (lex_one_token): Likewise. commit a738da3abe2bc02d70521086cf1d0e23565b8fbe Author: Matthew Fortune Date: Thu Jun 11 10:37:31 2015 +0100 Add support for DT_MIPS_RLD_MAP_REL. This tag allows debugging of MIPS position independent executables and provides access to shared library information. gdb/gdbserver/ * linux-low.c (get_r_debug): Handle DT_MIPS_RLD_MAP_REL. gdb/ * solib-svr4.c (read_program_header): Add base_addr argument to report the runtime address of the segment. (find_program_interpreter): Update read_program_header call to pass a NULL pointer for the new argument. (scan_dyntag): Add ptr_addr argument to report the runtime address of the tag payload. (scan_dyntag_auxv): Likewise and use thew new base_addr argument of read_program_header to get the base address of the dynamic segment. (elf_locate_base): Update uses of scan_dyntag, scan_dyntag_auxv and read_program_header. (elf_locate_base): Scan for and handle DT_MIPS_RLD_MAP_REL. commit f8edc4ff051b4e29997681cb3bc9078d98f4d457 Author: Matthew Fortune Date: Fri Aug 14 13:07:23 2015 +0100 Add myself to gdb MAINTAINERS gdb/ * MAINTAINERS (Write After Approval): Add Matthew Fortune. commit 9b57267f4ffa4f8a168f89630a4b68fb51a419de Author: Alan Modra Date: Wed Aug 12 19:07:26 2015 +0930 Revert "Fix encoding or OpenRisk1000 PC relative relocations." This reverts commit dbac553d28887561e3f154654ec8e70195d89943. PR ld/18759 * elf32-or1k.c: Revert 2015-08-11 change. commit 92019596ba7df7156ac634abf3ae82738dc5ba55 Author: GDB Administrator Date: Fri Aug 14 00:00:08 2015 +0000 Automatic date update in version.in commit 444c1ed8915961384af694249701fa7896e11da8 Author: Iain Buclaw Date: Thu Aug 13 21:35:09 2015 +0200 [D] Move classification of symbols from the grammar to the lexer. This makes it so that alternating '.' and identifier tokens are resolved to symbols as early as possible, which should all the addition of D properties - such as EXP.sizeof and EXP.typeof - without the shift/reduce conflicts that would occur in the current parsing strategy. gdb/ChangeLog * d-exp.y (%union): Add voidval. (%token): Add UNKNOWN_NAME as a token to represent an unclassified name in the lexing stage. (PostfixExpression): Move symbol completion handling in grammar here from PrimaryExpression. (PrimaryExpression): Move routines to handle resolving identifier tokens in the grammar here from push_expression_name. (IdentifierExp): Remove the handling of alternating '.' and identifier tokens. (TypeExp): Allow TypeExp to be wrapped in parenthesis in the grammar. (BasicType): Remove C-style typename rules. (d_type_from_name, d_module_from_name, push_variable) (push_fieldnames, push_type_name, push_module_name) (push_expression_name): Remove. (lex_one_token): Rename from yylex. Replace pstate with par_state. (token_and_value): New type. (token_fifo, popping, name_obstack): New globals. (classify_name): New function. (classify_inner_name): Likewise. (yylex): Likewise. (d_parse): Initialize token_fifo, popping and name_obstack. commit bc7c9fab612d4d33f7fe5d17eef4f5bd5cdc4144 Author: Iain Buclaw Date: Thu Aug 13 20:34:15 2015 +0200 [D] Support looking up symbols in the current and imported modules. In D, there is the notion of modules, and importing from one to the other, whether it is a basic, selective or renamed import declaration. module A; import X; void foo() { import Y : bar; } If the compiler emits DW_TAG_imported_declaration at the appropriate locations, then we can make use of what gdb stores in using_direct when performing nonlocal symbol lookups. gdb/ChangeLog * Makefile.in (SFILES): Add d-namespace.c. (COMMON_OBS): Add d-namespace.o. * d-lang.c (d_language_defn): Use d_lookup_symbol_nonlocal as the la_lookup_symbol_nonlocal callback function pointer. * d-lang.h (d_lookup_symbol_nonlocal): New declaration. (d_lookup_nested_symbol): New declaration. * d-namespace.c: New file. commit 52bbc560524ec3691203eccd05207d13913a1e35 Author: Joel Brobecker Date: Wed Aug 12 13:40:54 2015 -0700 gdb.base/dso2dso.exp: Improve testcase documentation. gdb/testsuite/ChangeLog: * gdb.base/dso2dso.exp: Improve the testcase's documentation. commit 3207396b9532f179bad24a9fb9a83253f3f5144d Author: Pedro Alves Date: Thu Aug 13 18:56:42 2015 +0100 Fix Python frame unwinder issue caught by Valgrind Valgrind shows: ==17026== Invalid write of size 8 ==17026== at 0x54AA80: pending_frame_invalidate (py-unwind.c:477) ==17026== by 0x5AB934: do_my_cleanups (cleanups.c:155) ==17026== by 0x5AB9AF: do_cleanups (cleanups.c:177) ==17026== by 0x54B009: pyuw_sniffer (py-unwind.c:606) ==17026== by 0x755DAC: frame_unwind_try_unwinder (frame-unwind.c:105) ==17026== by 0x755EEE: frame_unwind_find_by_frame (frame-unwind.c:160) ==17026== by 0x750FFA: compute_frame_id (frame.c:454) ==17026== by 0x753BD6: get_prev_frame_if_no_cycle (frame.c:1781) ==17026== by 0x754292: get_prev_frame_always_1 (frame.c:1955) ==17026== by 0x7542DA: get_prev_frame_always (frame.c:1971) ==17026== by 0x7547BE: get_prev_frame (frame.c:2213) ==17026== by 0x7532BD: unwind_to_current_frame (frame.c:1450) ==17026== Address 0xd27b570 is 16 bytes inside a block of size 32 free'd ==17026== at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==17026== by 0x54B276: gdb_Py_DECREF (python-internal.h:185) ==17026== by 0x54B298: py_decref (py-utils.c:34) ==17026== by 0x5AB934: do_my_cleanups (cleanups.c:155) ==17026== by 0x5AB9AF: do_cleanups (cleanups.c:177) ==17026== by 0x54B009: pyuw_sniffer (py-unwind.c:606) ==17026== by 0x755DAC: frame_unwind_try_unwinder (frame-unwind.c:105) ==17026== by 0x755EEE: frame_unwind_find_by_frame (frame-unwind.c:160) ==17026== by 0x750FFA: compute_frame_id (frame.c:454) ==17026== by 0x753BD6: get_prev_frame_if_no_cycle (frame.c:1781) ==17026== by 0x754292: get_prev_frame_always_1 (frame.c:1955) ==17026== by 0x7542DA: get_prev_frame_always (frame.c:1971) ==17026== Simply invalidate the object before releasing it. gdb/ChangeLog: 2015-08-13 Pedro Alves * python/py-unwind.c (pyuw_sniffer): Install the invalidate cleanup after the decref cleanup, not before. commit 67994074671a31e3d2fb78f6036f38095211ac49 Author: Keith Seitz Date: Thu Aug 13 09:48:12 2015 -0700 Mass rename `explicit' -> `explicit_loc'. BuildBot reminded me that "explicit" is a reserved keyword in C++. This patch simply renames all the (illegal) uses of "explicit". This should fix the build errors with --enable-build-with-cxx bots. gdb/ChangeLog * break-catch-throw.c (re_set_exception_catchpoint) Rename reserved C++ keyword "explicit" to "explicit_loc". * breakpoint.c (create_overlay_event_breakpoint) (create_longjmp_master_breakpoint) (create_std_terminate_master_breakpoint) (create_exception_master_breakpoint, update_static_tracepoint): Rename reserved C++ keyword "explicit" to "explicit_loc". * completer.c (collect_explicit_location_matches) (explicit_location_completer): Rename reserved C++ keyword "explicit" to "explicit_loc". * linespec.c (struct linespec) : Rename to "explicit_loc". (canonicalize_linespec, create_sals_line_offset) (convert_linespec_to_sals, convert_explicit_location_to_sals) (event_location_to_sals, decode_objc): Rename reserved C++ keyword "explicit" to "explicit_loc". * location.c (struct event_location) : Rename to "explicit_loc". (initialize_explicit_location, new_explicit_location) (explicit_location_to_string_internal, explicit_location_to_linespec): Rename reserved C++ keyword "explicit" to "explicit_loc". * location.h (explicit_location_to_string) (explicit_location_to_linespec, initialize_explicit_location) (new_explicit_location): Rename reserved C++ keyword "explicit" to "explicit_loc". * mi/mi-cmd-break.c (mi_cmd_break_insert_1): Rename reserved C++ keyword "explicit" to "explicit_loc". ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 5 + bfd/elf32-or1k.c | 6 +- bfd/version.h | 2 +- gdb/ChangeLog | 127 ++++ gdb/MAINTAINERS | 1 + gdb/Makefile.in | 4 +- gdb/NEWS | 7 + gdb/break-catch-throw.c | 8 +- gdb/breakpoint.c | 44 +- gdb/cli/cli-cmds.c | 44 ++- gdb/completer.c | 28 +- gdb/d-exp.y | 792 ++++++++++++++------------ gdb/d-lang.c | 2 +- gdb/d-lang.h | 10 + gdb/d-namespace.c | 562 ++++++++++++++++++ gdb/disasm.c | 404 ++++++++++++- gdb/disasm.h | 3 +- gdb/doc/ChangeLog | 6 + gdb/doc/gdb.texinfo | 121 ++++- gdb/gdbserver/ChangeLog | 4 + gdb/gdbserver/linux-low.c | 30 +- gdb/linespec.c | 87 ++-- gdb/location.c | 72 ++-- gdb/location.h | 9 +- gdb/mi/mi-cmd-break.c | 22 +- gdb/mi/mi-cmd-disas.c | 39 +- gdb/python/py-unwind.c | 2 +- gdb/record.c | 2 +- gdb/solib-svr4.c | 63 ++- gdb/testsuite/ChangeLog | 22 + gdb/testsuite/gdb.base/disasm-optim.S | 352 ++++++++++++ gdb/testsuite/gdb.base/disasm-optim.c | 27 + gdb/testsuite/gdb.base/disasm-optim.exp | 40 ++ gdb/testsuite/gdb.base/disasm-optim.h | 26 + gdb/testsuite/gdb.base/dso2dso.exp | 14 +- gdb/testsuite/gdb.mi/mi-disassemble.exp | 2 +- gdb/testsuite/gdb.perf/lib/perftest/utils.py | 1 + gdb/testsuite/lib/mi-support.exp | 14 +- 38 files changed, 2414 insertions(+), 590 deletions(-) create mode 100644 gdb/d-namespace.c create mode 100644 gdb/testsuite/gdb.base/disasm-optim.S create mode 100644 gdb/testsuite/gdb.base/disasm-optim.c create mode 100644 gdb/testsuite/gdb.base/disasm-optim.exp create mode 100644 gdb/testsuite/gdb.base/disasm-optim.h First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9ba5902..09f7650 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2015-08-14 Alan Modra + + PR ld/18759 + * elf32-or1k.c: Revert 2015-08-11 change. + 2015-08-13 H.J. Lu PR ld/18801 diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 7cb093c..efcefea 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -199,7 +199,7 @@ static reloc_howto_type or1k_elf_howto_table[] = FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_OR1K_16_PCREL, 0, /* rightshift */ @@ -213,7 +213,7 @@ static reloc_howto_type or1k_elf_howto_table[] = FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_OR1K_8_PCREL, 0, /* rightshift */ @@ -227,7 +227,7 @@ static reloc_howto_type or1k_elf_howto_table[] = FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - TRUE), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_OR1K_GOTPC_HI16, /* Type. */ 16, /* Rightshift. */ diff --git a/bfd/version.h b/bfd/version.h index 68b79ad..1579c8e 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20150813 +#define BFD_VERSION_DATE 20150815 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 99b0eb8..298f44d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,101 @@ +2015-08-14 Doug Evans + + PR gdb/11833 + * NEWS: Document new /s modifier for the disassemble command. + * cli/cli-cmds.c (disassemble_command): Add support for /s. + (_initialize_cli_cmds): Update online docs of disassemble command. + * disasm.c: #include "source.h". + (struct deprecated_dis_line_entry): Renamed from dis_line_entry. + All uses updated. + (dis_line_entry): New struct. + (hash_dis_line_entry, eq_dis_line_entry): New functions. + (allocate_dis_line_table): New functions. + (maybe_add_dis_line_entry, line_has_code_p): New functions. + (dump_insns): New arg end_pc. All callers updated. + (do_mixed_source_and_assembly_deprecated): Renamed from + do_mixed_source_and_assembly. All callers updated. + (do_mixed_source_and_assembly): New function. + (gdb_disassembly): Handle /s (DISASSEMBLY_SOURCE). + * disasm.h (DISASSEMBLY_SOURCE_DEPRECATED): Renamed from + DISASSEMBLY_SOURCE. All uses updated. + (DISASSEMBLY_SOURCE): New macro. + * mi/mi-cmd-disas.c (mi_cmd_disassemble): New modes 4,5. + +2015-08-14 Keith Seitz + + * d-exp.y (PrimaryExpression : TypeExp '.' IdentifierExp): Rename + `typename' to `type_name' to avoid C++ reserved word. + +2015-08-14 Keith Seitz + + * location.c (EL_TYPE, EL_LINESPEC, EL_PROBE, EL_ADDRESS) + (EL_EXPLICIT, EL_STRING): Change macro parameter to "P" to + silence ARI errors. + +2015-08-14 Iain Buclaw + + * d-exp.y (PrimaryExpression : TypeExp '.' IdentifierExp): Use + xstrprintf instead of malloc and sprintf. + (PrimaryExpression : IdentifierExp): Avoid operator at end of line. + (lex_one_token): Likewise. + +2015-08-14 Matthew Fortune + + * solib-svr4.c (read_program_header): Add base_addr argument to + report the runtime address of the segment. + (find_program_interpreter): Update read_program_header call to pass + a NULL pointer for the new argument. + (scan_dyntag): Add ptr_addr argument to report the runtime address + of the tag payload. + (scan_dyntag_auxv): Likewise and use thew new base_addr argument of + read_program_header to get the base address of the dynamic segment. + (elf_locate_base): Update uses of scan_dyntag, scan_dyntag_auxv and + read_program_header. + (elf_locate_base): Scan for and handle DT_MIPS_RLD_MAP_REL. + +2015-08-14 Matthew Fortune + + * MAINTAINERS (Write After Approval): Add Matthew Fortune. + +2015-08-13 Iain Buclaw + + * d-exp.y (%union): Add voidval. + (%token): Add UNKNOWN_NAME as a token to represent an unclassified + name in the lexing stage. + (PostfixExpression): Move symbol completion handling in grammar here + from PrimaryExpression. + (PrimaryExpression): Move routines to handle resolving identifier + tokens in the grammar here from push_expression_name. + (IdentifierExp): Remove the handling of alternating '.' and identifier + tokens. + (TypeExp): Allow TypeExp to be wrapped in parenthesis in the grammar. + (BasicType): Remove C-style typename rules. + (d_type_from_name, d_module_from_name, push_variable) + (push_fieldnames, push_type_name, push_module_name) + (push_expression_name): Remove. + (lex_one_token): Rename from yylex. Replace pstate with par_state. + (token_and_value): New type. + (token_fifo, popping, name_obstack): New globals. + (classify_name): New function. + (classify_inner_name): Likewise. + (yylex): Likewise. + (d_parse): Initialize token_fifo, popping and name_obstack. + +2015-08-13 Iain Buclaw + + * Makefile.in (SFILES): Add d-namespace.c. + (COMMON_OBS): Add d-namespace.o. + * d-lang.c (d_language_defn): Use d_lookup_symbol_nonlocal as the + la_lookup_symbol_nonlocal callback function pointer. + * d-lang.h (d_lookup_symbol_nonlocal): New declaration. + (d_lookup_nested_symbol): New declaration. + * d-namespace.c: New file. + +2015-08-13 Pedro Alves + + * python/py-unwind.c (pyuw_sniffer): Install the invalidate + cleanup after the decref cleanup, not before. + 2015-08-13 Pierre-Marie de Rodat * ada-lang.c: Include namespace.h @@ -54,6 +152,35 @@ 2015-08-12 Keith Seitz + * break-catch-throw.c (re_set_exception_catchpoint) Rename + reserved C++ keyword "explicit" to "explicit_loc". + * breakpoint.c (create_overlay_event_breakpoint) + (create_longjmp_master_breakpoint) + (create_std_terminate_master_breakpoint) + (create_exception_master_breakpoint, update_static_tracepoint): + Rename reserved C++ keyword "explicit" to "explicit_loc". + * completer.c (collect_explicit_location_matches) + (explicit_location_completer): Rename reserved C++ keyword + "explicit" to "explicit_loc". + * linespec.c (struct linespec) : Rename to "explicit_loc". + (canonicalize_linespec, create_sals_line_offset) + (convert_linespec_to_sals, convert_explicit_location_to_sals) + (event_location_to_sals, decode_objc): Rename reserved C++ keyword + "explicit" to "explicit_loc". + * location.c (struct event_location) : Rename to + "explicit_loc". + (initialize_explicit_location, new_explicit_location) + (explicit_location_to_string_internal, explicit_location_to_linespec): + Rename reserved C++ keyword "explicit" to "explicit_loc". + * location.h (explicit_location_to_string) + (explicit_location_to_linespec, initialize_explicit_location) + (new_explicit_location): Rename reserved C++ keyword "explicit" + to "explicit_loc". + * mi/mi-cmd-break.c (mi_cmd_break_insert_1): Rename reserved C++ + keyword "explicit" to "explicit_loc". + +2015-08-12 Keith Seitz + * python/python.c (gdbpy_decode_line): Initialize `location' to NULL and only call decode_line_1 when it is non-NULL. diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS index f774c6e..9b395d7 100644 --- a/gdb/MAINTAINERS +++ b/gdb/MAINTAINERS @@ -517,6 +517,7 @@ Doug Evans dje@google.com Adam Fedor fedor@gnu.org Max Filippov jcmvbkbc@gmail.com Brian Ford ford@vss.fsi.com +Matthew Fortune matthew.fortune@imgtec.com Orjan Friberg orjanf@axis.com Andreas From andreas.from@ericsson.com Nathan Froyd froydnj@codesourcery.com diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 4b25d4a..3247126 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -839,7 +839,7 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \ charset.c common/cleanups.c cli-out.c coffread.c coff-pe-read.c \ complaints.c completer.c continuations.c corefile.c corelow.c \ cp-abi.c cp-support.c cp-namespace.c cp-valprint.c \ - d-exp.y d-lang.c d-valprint.c \ + d-exp.y d-lang.c d-namespace.c d-valprint.c \ cp-name-parser.y \ dbxread.c demangle.c dictionary.c disasm.c doublest.c \ dtrace-probe.c dummy-frame.c \ @@ -1073,7 +1073,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ frame-base.o \ inline-frame.o \ gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o \ - cp-namespace.o \ + cp-namespace.o d-namespace.o \ reggroups.o \ trad-frame.o \ tramp-frame.o \ diff --git a/gdb/NEWS b/gdb/NEWS index 538c185..df19e24 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -20,6 +20,13 @@ maint show target-non-stop "set non-stop" is "off". The default is "auto", meaning non-stop mode is enabled if supported by the target. +* The "disassemble" command accepts a new modifier: /s. + It prints mixed source+disassembly like /m with two differences: + - disassembled instructions are now printed in program order, and + - and source for all relevant files is now printed. + The "/m" option is now considered deprecated: its "source-centric" + output hasn't proved useful in practice. + * New options set validate-build-id (on|off) diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c index 209c3e3..1ba505b 100644 --- a/gdb/break-catch-throw.c +++ b/gdb/break-catch-throw.c @@ -229,12 +229,12 @@ re_set_exception_catchpoint (struct breakpoint *self) catchpoint mode. */ TRY { - struct explicit_location explicit; + struct explicit_location explicit_loc; - initialize_explicit_location (&explicit); - explicit.function_name + initialize_explicit_location (&explicit_loc); + explicit_loc.function_name = ASTRDUP (exception_functions[kind].function); - location = new_explicit_location (&explicit); + location = new_explicit_location (&explicit_loc); cleanup = make_cleanup_delete_event_location (location); self->ops->decode_location (self, location, &sals); do_cleanups (cleanup); diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index a6994c7..052aeb9 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -3424,7 +3424,7 @@ create_overlay_event_breakpoint (void) struct breakpoint *b; struct breakpoint_objfile_data *bp_objfile_data; CORE_ADDR addr; - struct explicit_location explicit; + struct explicit_location explicit_loc; bp_objfile_data = get_breakpoint_objfile_data (objfile); @@ -3449,9 +3449,9 @@ create_overlay_event_breakpoint (void) b = create_internal_breakpoint (get_objfile_arch (objfile), addr, bp_overlay_event, &internal_breakpoint_ops); - initialize_explicit_location (&explicit); - explicit.function_name = ASTRDUP (func_name); - b->location = new_explicit_location (&explicit); + initialize_explicit_location (&explicit_loc); + explicit_loc.function_name = ASTRDUP (func_name); + b->location = new_explicit_location (&explicit_loc); if (overlay_debugging == ovly_auto) { @@ -3548,7 +3548,7 @@ create_longjmp_master_breakpoint (void) struct breakpoint *b; const char *func_name; CORE_ADDR addr; - struct explicit_location explicit; + struct explicit_location explicit_loc; if (msym_not_found_p (bp_objfile_data->longjmp_msym[i].minsym)) continue; @@ -3571,9 +3571,9 @@ create_longjmp_master_breakpoint (void) addr = BMSYMBOL_VALUE_ADDRESS (bp_objfile_data->longjmp_msym[i]); b = create_internal_breakpoint (gdbarch, addr, bp_longjmp_master, &internal_breakpoint_ops); - initialize_explicit_location (&explicit); - explicit.function_name = ASTRDUP (func_name); - b->location = new_explicit_location (&explicit); + initialize_explicit_location (&explicit_loc); + explicit_loc.function_name = ASTRDUP (func_name); + b->location = new_explicit_location (&explicit_loc); b->enable_state = bp_disabled; } } @@ -3604,7 +3604,7 @@ create_std_terminate_master_breakpoint (void) { struct breakpoint *b; struct breakpoint_objfile_data *bp_objfile_data; - struct explicit_location explicit; + struct explicit_location explicit_loc; bp_objfile_data = get_breakpoint_objfile_data (objfile); @@ -3630,9 +3630,9 @@ create_std_terminate_master_breakpoint (void) b = create_internal_breakpoint (get_objfile_arch (objfile), addr, bp_std_terminate_master, &internal_breakpoint_ops); - initialize_explicit_location (&explicit); - explicit.function_name = ASTRDUP (func_name); - b->location = new_explicit_location (&explicit); + initialize_explicit_location (&explicit_loc); + explicit_loc.function_name = ASTRDUP (func_name); + b->location = new_explicit_location (&explicit_loc); b->enable_state = bp_disabled; } } @@ -3656,7 +3656,7 @@ create_exception_master_breakpoint (void) struct gdbarch *gdbarch; struct breakpoint_objfile_data *bp_objfile_data; CORE_ADDR addr; - struct explicit_location explicit; + struct explicit_location explicit_loc; bp_objfile_data = get_breakpoint_objfile_data (objfile); @@ -3737,9 +3737,9 @@ create_exception_master_breakpoint (void) ¤t_target); b = create_internal_breakpoint (gdbarch, addr, bp_exception_master, &internal_breakpoint_ops); - initialize_explicit_location (&explicit); - explicit.function_name = ASTRDUP (func_name); - b->location = new_explicit_location (&explicit); + initialize_explicit_location (&explicit_loc); + explicit_loc.function_name = ASTRDUP (func_name); + b->location = new_explicit_location (&explicit_loc); b->enable_state = bp_disabled; } @@ -13947,7 +13947,7 @@ update_static_tracepoint (struct breakpoint *b, struct symtab_and_line sal) struct symbol *sym; struct static_tracepoint_marker *tpmarker; struct ui_out *uiout = current_uiout; - struct explicit_location explicit; + struct explicit_location explicit_loc; tpmarker = VEC_index (static_tracepoint_marker_p, markers, 0); @@ -13989,12 +13989,12 @@ update_static_tracepoint (struct breakpoint *b, struct symtab_and_line sal) b->loc->symtab = sym != NULL ? sal2.symtab : NULL; delete_event_location (b->location); - initialize_explicit_location (&explicit); - explicit.source_filename + initialize_explicit_location (&explicit_loc); + explicit_loc.source_filename = ASTRDUP (symtab_to_filename_for_display (sal2.symtab)); - explicit.line_offset.offset = b->loc->line_number; - explicit.line_offset.sign = LINE_OFFSET_NONE; - b->location = new_explicit_location (&explicit); + explicit_loc.line_offset.offset = b->loc->line_number; + explicit_loc.line_offset.sign = LINE_OFFSET_NONE; + b->location = new_explicit_location (&explicit_loc); /* Might be nice to check if function changed, and warn if so. */ diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index 68af26b..5be758d 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -1176,16 +1176,26 @@ disassemble_current_function (int flags) /* Dump a specified section of assembly code. Usage: - disassemble [/mr] + disassemble [/mrs] - dump the assembly code for the function of the current pc - disassemble [/mr] addr + disassemble [/mrs] addr - dump the assembly code for the function at ADDR - disassemble [/mr] low,high - disassemble [/mr] low,+length + disassemble [/mrs] low,high + disassemble [/mrs] low,+length - dump the assembly code in the range [LOW,HIGH), or [LOW,LOW+length) - A /m modifier will include source code with the assembly. - A /r modifier will include raw instructions in hex with the assembly. */ + A /m modifier will include source code with the assembly in a + "source centric" view. This view lists only the file of the first insn, + even if other source files are involved (e.g., inlined functions), and + the output is in source order, even with optimized code. This view is + considered deprecated as it hasn't been useful in practice. + + A /r modifier will include raw instructions in hex with the assembly. + + A /s modifier will include source code with the assembly, like /m, with + two important differences: + 1) The output is still in pc address order. + 2) File names and contents for all relevant source files are displayed. */ static void disassemble_command (char *arg, int from_tty) @@ -1213,11 +1223,14 @@ disassemble_command (char *arg, int from_tty) switch (*p++) { case 'm': - flags |= DISASSEMBLY_SOURCE; + flags |= DISASSEMBLY_SOURCE_DEPRECATED; break; case 'r': flags |= DISASSEMBLY_RAW_INSN; break; + case 's': + flags |= DISASSEMBLY_SOURCE; + break; default: error (_("Invalid disassembly modifier.")); } @@ -1226,6 +1239,10 @@ disassemble_command (char *arg, int from_tty) p = skip_spaces_const (p); } + if ((flags & (DISASSEMBLY_SOURCE_DEPRECATED | DISASSEMBLY_SOURCE)) + == (DISASSEMBLY_SOURCE_DEPRECATED | DISASSEMBLY_SOURCE)) + error (_("Cannot specify both /m and /s.")); + if (! p || ! *p) { flags |= DISASSEMBLY_OMIT_FNAME; @@ -1886,8 +1903,21 @@ the other arg.")); c = add_com ("disassemble", class_vars, disassemble_command, _("\ Disassemble a specified section of memory.\n\ Default is the function surrounding the pc of the selected frame.\n\ +\n\ With a /m modifier, source lines are included (if available).\n\ +This view is \"source centric\": the output is in source line order,\n\ +regardless of any optimization that is present. Only the main source file\n\ +is displayed, not those of, e.g., any inlined functions.\n\ +This modifier hasn't proved useful in practice and is deprecated\n\ +in favor of /s.\n\ +\n\ +With a /s modifier, source lines are included (if available).\n\ +This differs from /m in two important respects:\n\ +- the output is still in pc address order, and\n\ +- file names and contents for all relevant source files are displayed.\n\ +\n\ With a /r modifier, raw instructions in hex are included.\n\ +\n\ With a single argument, the function surrounding that address is dumped.\n\ Two arguments (separated by a comma) are taken as a range of memory to dump,\n\ in the form of \"start,end\", or \"start,+length\".\n\ diff --git a/gdb/completer.c b/gdb/completer.c index 7fc27b1..821f882 100644 --- a/gdb/completer.c +++ b/gdb/completer.c @@ -358,14 +358,15 @@ collect_explicit_location_matches (struct event_location *location, const char *word) { VEC (char_ptr) *matches = NULL; - const struct explicit_location *explicit = get_explicit_location (location); + const struct explicit_location *explicit_loc + = get_explicit_location (location); switch (what) { case MATCH_SOURCE: { - const char *text = (explicit->source_filename == NULL - ? "" : explicit->source_filename); + const char *text = (explicit_loc->source_filename == NULL + ? "" : explicit_loc->source_filename); matches = make_source_files_completion_list (text, word); } @@ -373,14 +374,14 @@ collect_explicit_location_matches (struct event_location *location, case MATCH_FUNCTION: hooks/post-receive -- Repository for Project Archer.