From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26960 invoked by alias); 8 Jan 2017 17:14:42 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 26894 invoked by uid 9674); 8 Jan 2017 17:14:42 -0000 Date: Sun, 08 Jan 2017 17:14:00 -0000 Message-ID: <20170108171441.26839.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] users/jkratoch/dwarf5readelf-gdb: Merge branch 'readelf-gdb-callsite-macro' into readelf-gdb-callsite-macro-data16 X-Git-Refname: refs/heads/users/jkratoch/dwarf5readelf-gdb X-Git-Reftype: branch X-Git-Oldrev: cec1c8a0e47fceac4093ddadc6ace04e14015fef X-Git-Newrev: d6e2380a6e89a345a18ec355ba842d2f1be35a45 X-SW-Source: 2017-q1/txt/msg00016.txt.bz2 List-Id: The branch, users/jkratoch/dwarf5readelf-gdb has been updated via d6e2380a6e89a345a18ec355ba842d2f1be35a45 (commit) via 31b1d80ddce5eebbf09f0de731009a791eb61a7a (commit) via 3dc5599adf2957f5fc986809df173661b16d39de (commit) via 40cd1f0d512be8542ace97eabf6d9f7f615f3f88 (commit) via 8955e1475d36a84b6f8e47c86bfb1ddd4a00346d (commit) via 31e4b8adefa965aed4d3299464d948ec0134b3f2 (commit) via 00d4f96ce01114ff591d0c997fdc117a939018f9 (commit) via affe3df3d7c05e94a50ada798a236b28acaafbcd (commit) via 8e28dfae2852b5ae38e22cff3f36efa6f00f87af (commit) via f5e6296e2194add209b546ad49039753a10242f5 (commit) via 2efa21564b81bd6d8a7ee23c2868a4bd6749b11c (commit) via 431e5de3f224e94fb0d061edb3a56d8e3c3f4403 (commit) from cec1c8a0e47fceac4093ddadc6ace04e14015fef (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d6e2380a6e89a345a18ec355ba842d2f1be35a45 Merge: 31e4b8a 31b1d80 Author: Jan Kratochvil Date: Sun Jan 8 18:13:30 2017 +0100 Merge branch 'readelf-gdb-callsite-macro' into readelf-gdb-callsite-macro-data16 commit 31b1d80ddce5eebbf09f0de731009a791eb61a7a Merge: 00d4f96 3dc5599 Author: Jan Kratochvil Date: Sun Jan 8 18:13:30 2017 +0100 Merge branch 'readelf-gdb-callsite' into readelf-gdb-callsite-macro commit 3dc5599adf2957f5fc986809df173661b16d39de Merge: affe3df 40cd1f0 Author: Jan Kratochvil Date: Sun Jan 8 18:13:29 2017 +0100 Merge branch 'readelf-gdb' into readelf-gdb-callsite commit 40cd1f0d512be8542ace97eabf6d9f7f615f3f88 Merge: 8e28dfa 8955e14 Author: Jan Kratochvil Date: Sun Jan 8 18:13:29 2017 +0100 Merge branch 'readelf' into readelf-gdb commit 31e4b8adefa965aed4d3299464d948ec0134b3f2 Merge: cec1c8a 00d4f96 Author: Jan Kratochvil Date: Sun Jan 8 18:06:38 2017 +0100 Merge branch 'readelf-gdb-callsite-macro' into readelf-gdb-callsite-macro-data16 commit 00d4f96ce01114ff591d0c997fdc117a939018f9 Merge: 8878294 affe3df Author: Jan Kratochvil Date: Sun Jan 8 18:06:38 2017 +0100 Merge branch 'readelf-gdb-callsite' into readelf-gdb-callsite-macro commit affe3df3d7c05e94a50ada798a236b28acaafbcd Merge: 7ff6ffd 8e28dfa Author: Jan Kratochvil Date: Sun Jan 8 18:06:37 2017 +0100 Merge branch 'readelf-gdb' into readelf-gdb-callsite commit 8e28dfae2852b5ae38e22cff3f36efa6f00f87af Author: Jan Kratochvil Date: Sun Jan 8 18:06:27 2017 +0100 . ----------------------------------------------------------------------- Summary of changes: bfd/elf64-s390.c | 12 ++++ bfd/version.h | 2 +- binutils/dwarf.c | 96 ++++++++++++++++++-------------- gdb/ChangeLog | 4 + gdb/d-exp.y | 9 +-- gdb/testsuite/ChangeLog | 4 + gdb/testsuite/gdb.dlang/debug-expr.exp | 40 +++++++++++++ 7 files changed, 118 insertions(+), 49 deletions(-) create mode 100644 gdb/testsuite/gdb.dlang/debug-expr.exp First 500 lines of diff: diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index bbfcd2e..edc9b86 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -2701,6 +2701,18 @@ elf_s390_relocate_section (bfd *output_bfd, case R_390_PC32: case R_390_PC32DBL: case R_390_PC64: + if (h != NULL + && bfd_link_pie (info) + && !h->def_regular) + { + _bfd_error_handler (_("%B: `%s' non-PLT reloc for symbol defined " + "in shared library and accessed " + "from executable " + "(rebuild file with -fPIC ?)"), + input_bfd, h->root.root.string); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } /* The target of these relocs are instruction operands residing in read-only sections. We cannot emit a runtime reloc for it. */ diff --git a/bfd/version.h b/bfd/version.h index f2b6007..589838e 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20170107 +#define BFD_VERSION_DATE 20170108 #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/binutils/dwarf.c b/binutils/dwarf.c index fa4367a..ba05066 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -3001,8 +3001,7 @@ display_formatted_table (unsigned char *data, { unsigned char *format_start, format_count, *format, formati; dwarf_vma data_count, datai; - unsigned int bytes_read; - unsigned int last_entry = 0; + unsigned int bytes_read, namepass, last_entry = 0; SAFE_BYTE_GET_AND_INC (format_count, data, 1, end); format_start = data; @@ -3037,55 +3036,68 @@ display_formatted_table (unsigned char *data, (long)(data - start)); printf (_(" Entry")); - format = format_start; - for (formati = 0; formati < format_count; formati++) + /* Delay displaying name as the last entry for better screen layout. */ + for (namepass = 0; namepass < 2; namepass++) { - dwarf_vma content_type; - - content_type = read_uleb128 (format, & bytes_read, end); - format += bytes_read; - switch (content_type) + format = format_start; + for (formati = 0; formati < format_count; formati++) { - case DW_LNCT_path: - printf (_("\tName")); - break; - case DW_LNCT_directory_index: - printf (_("\tDir")); - break; - case DW_LNCT_timestamp: - printf (_("\tTime")); - break; - case DW_LNCT_size: - printf (_("\tSize")); - break; - case DW_LNCT_MD5: - printf (_("\tMD5")); - break; - default: - printf (_("\t(Unknown format content type %s)"), - dwarf_vmatoa ("u", content_type)); + dwarf_vma content_type; + + content_type = read_uleb128 (format, & bytes_read, end); + format += bytes_read; + if ((content_type == DW_LNCT_path) == (namepass == 1)) + switch (content_type) + { + case DW_LNCT_path: + printf (_("\tName")); + break; + case DW_LNCT_directory_index: + printf (_("\tDir")); + break; + case DW_LNCT_timestamp: + printf (_("\tTime")); + break; + case DW_LNCT_size: + printf (_("\tSize")); + break; + case DW_LNCT_MD5: + printf (_("\tMD5")); + break; + default: + printf (_("\t(Unknown format content type %s)"), + dwarf_vmatoa ("u", content_type)); + } + read_uleb128 (format, & bytes_read, end); + format += bytes_read; } - read_uleb128 (format, & bytes_read, end); - format += bytes_read; } putchar ('\n'); for (datai = 0; datai < data_count; datai++) { - format = format_start; + unsigned char *datapass = data; + printf (" %d", last_entry++); - for (formati = 0; formati < format_count; formati++) + /* Delay displaying name as the last entry for better screen layout. */ + for (namepass = 0; namepass < 2; namepass++) { - dwarf_vma form; - - read_uleb128 (format, & bytes_read, end); - format += bytes_read; - form = read_uleb128 (format, & bytes_read, end); - format += bytes_read; - data = read_and_display_attr_value (0, form, 0, data, end, 0, 0, - linfo->li_offset_size, - linfo->li_version, NULL, 0, - section, NULL, '\t'); + format = format_start; + data = datapass; + for (formati = 0; formati < format_count; formati++) + { + dwarf_vma content_type, form; + + content_type = read_uleb128 (format, & bytes_read, end); + format += bytes_read; + form = read_uleb128 (format, & bytes_read, end); + format += bytes_read; + data = read_and_display_attr_value (0, form, 0, data, end, 0, 0, + linfo->li_offset_size, + linfo->li_version, NULL, + ((content_type == DW_LNCT_path) != (namepass == 1)), + section, NULL, '\t'); + } } if (data == end) { @@ -5612,7 +5624,7 @@ display_debug_loclists (struct dwarf_section *section, void *file __attribute__( } if (is_dwo) - for (;;); // display_loc_list_dwo (section, &start, i, offset, has_frame_base); + warn (_("DWO is not yet supported.\n")); else display_loclists_list (section, &start, i, offset, base_address, has_frame_base); diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fec9974..7f16a5f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2017-01-08 Iain Buclaw + + * d-exp.y (CastExpression): Emit UNOP_CAST_TYPE. + 2017-01-06 Yao Qi * x86-linux-nat.h: Include gdb_proc_service.h. diff --git a/gdb/d-exp.y b/gdb/d-exp.y index 077e645..b526575 100644 --- a/gdb/d-exp.y +++ b/gdb/d-exp.y @@ -321,15 +321,12 @@ UnaryExpression: CastExpression: CAST_KEYWORD '(' TypeExp ')' UnaryExpression - { write_exp_elt_opcode (pstate, UNOP_CAST); - write_exp_elt_type (pstate, $3); - write_exp_elt_opcode (pstate, UNOP_CAST); } + { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } /* C style cast is illegal D, but is still recognised in the grammar, so we keep this around for convenience. */ | '(' TypeExp ')' UnaryExpression - { write_exp_elt_opcode (pstate, UNOP_CAST); - write_exp_elt_type (pstate, $2); - write_exp_elt_opcode (pstate, UNOP_CAST); } + { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } + ; PowExpression: diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d12072b..8a03282 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2017-01-08 Iain Buclaw + + * gdb.dlang/debug-expr.exp: New file. + 2016-12-23 Luis Machado Fix test names for the following files: diff --git a/gdb/testsuite/gdb.dlang/debug-expr.exp b/gdb/testsuite/gdb.dlang/debug-expr.exp new file mode 100644 index 0000000..d62dcc6 --- /dev/null +++ b/gdb/testsuite/gdb.dlang/debug-expr.exp @@ -0,0 +1,40 @@ +# Copyright 2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Test "set debug expr 1" on d expressions. + +if { [skip_d_tests] } { return -1 } + +gdb_start +gdb_test_no_output "set language d" +gdb_test_no_output "set debug expression 1" + +# Test whether the expression debug machinery accepts the expression. + +proc test_debug_expr { cmd output } { + global gdb_prompt + + gdb_test_multiple $cmd "" { + -re ".*Invalid expression.*\r\n$gdb_prompt $" { + fail $cmd + } + -re ".*\[\r\n\]$output\r\n$gdb_prompt $" { + pass $cmd + } + } +} + +# This caused gdb to segfault. +test_debug_expr "print *(int*)(0)" "Cannot access memory at address 0x0" hooks/post-receive -- Repository for Project Archer.