public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
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
Date: Sun, 08 Jan 2017 17:14:00 -0000	[thread overview]
Message-ID: <20170108171441.26839.qmail@sourceware.org> (raw)

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 <jan.kratochvil@redhat.com>
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 <jan.kratochvil@redhat.com>
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 <jan.kratochvil@redhat.com>
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 <jan.kratochvil@redhat.com>
Date:   Sun Jan 8 18:13:29 2017 +0100

    Merge branch 'readelf' into readelf-gdb

commit 31e4b8adefa965aed4d3299464d948ec0134b3f2
Merge: cec1c8a 00d4f96
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
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 <jan.kratochvil@redhat.com>
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 <jan.kratochvil@redhat.com>
Date:   Sun Jan 8 18:06:37 2017 +0100

    Merge branch 'readelf-gdb' into readelf-gdb-callsite

commit 8e28dfae2852b5ae38e22cff3f36efa6f00f87af
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
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  <ibuclaw@gdcproject.org>
+
+	* d-exp.y (CastExpression): Emit UNOP_CAST_TYPE.
+
 2017-01-06  Yao Qi  <yao.qi@linaro.org>
 
 	* 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  <ibuclaw@gdcproject.org>
+
+	* gdb.dlang/debug-expr.exp: New file.
+
 2016-12-23  Luis Machado  <lgustavo@codesourcery.com>
 
 	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 <http://www.gnu.org/licenses/>.
+
+# 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.


             reply	other threads:[~2017-01-08 17:14 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-08 17:14 jkratoch [this message]
2017-01-12 17:45 jkratoch
2017-02-07 20:50 jkratoch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170108171441.26839.qmail@sourceware.org \
    --to=jkratoch@sourceware.org \
    --cc=archer-commits@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).