public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
From: gdb-buildbot@sergiodj.net
To: gdb-testers@sourceware.org
Subject: [binutils-gdb] Support for DWARF5 location lists entries
Date: Thu, 16 Jan 2020 17:59:00 -0000	[thread overview]
Message-ID: <3112ed9799124edf4d1f9c903da0d59f5a4ca102@gdb-build> (raw)

*** TEST RESULTS FOR COMMIT 3112ed9799124edf4d1f9c903da0d59f5a4ca102 ***

commit 3112ed9799124edf4d1f9c903da0d59f5a4ca102
Author:     Nitika Achra <Nitika.Achra@amd.com>
AuthorDate: Thu Jan 16 11:51:06 2020 -0500
Commit:     Simon Marchi <simon.marchi@efficios.com>
CommitDate: Thu Jan 16 11:51:19 2020 -0500

    Support for DWARF5 location lists entries
    
    This patch handles DW_LLE_base_addressx, DW_LLE_startx_length and
    DW_LLE_start_length.
    
    Tested by running the testsuite before and after the patch and there is
    no increase in the number of test cases that fails. Tested with both
    -gdwarf-4 and -gdwarf-5 flags. Also tested -gslit-dwarf along with
    -gdwarf-4 as well as -gdwarf5 flags.
    
    This is an effort to support DWARF5 in gdb.
    
    gdb/ChangeLog:
    
            * dwarf2loc.c (decode_debug_loclists_addresses): Handle
            DW_LLE_base_addressx, DW_LLE_startx_length, DW_LLE_start_length.

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index cd89a44733..5513bea818 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2020-01-16  Nitika Achra  <Nitika.Achra@amd.com>
+
+	* dwarf2loc.c (decode_debug_loclists_addresses): Handle
+	DW_LLE_base_addressx, DW_LLE_startx_length, DW_LLE_start_length.
+
 2020-01-15  Simon Marchi  <simon.marchi@efficios.com>
 
 	* infcmd.c (post_create_inferior): Use get_thread_regcache
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 1fe6829100..405b239ed4 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -173,6 +173,41 @@ decode_debug_loclists_addresses (struct dwarf2_per_cu_data *per_cu,
 
   switch (*loc_ptr++)
     {
+    case DW_LLE_base_addressx:
+      *low = 0;
+      loc_ptr = gdb_read_uleb128 (loc_ptr, buf_end, &u64);
+      if (loc_ptr == NULL)
+	 return DEBUG_LOC_BUFFER_OVERFLOW;
+      *high = dwarf2_read_addr_index (per_cu, u64);
+      *new_ptr = loc_ptr;
+      return DEBUG_LOC_BASE_ADDRESS;
+    case DW_LLE_startx_length:
+      loc_ptr = gdb_read_uleb128 (loc_ptr, buf_end, &u64);
+      if (loc_ptr == NULL)
+	 return DEBUG_LOC_BUFFER_OVERFLOW;
+      *low = dwarf2_read_addr_index (per_cu, u64);
+      *high = *low;
+      loc_ptr = gdb_read_uleb128 (loc_ptr, buf_end, &u64);
+      if (loc_ptr == NULL)
+	 return DEBUG_LOC_BUFFER_OVERFLOW;
+      *high += u64;
+      *new_ptr = loc_ptr;
+      return DEBUG_LOC_START_LENGTH;
+    case DW_LLE_start_length:
+      if (buf_end - loc_ptr < addr_size)
+	 return DEBUG_LOC_BUFFER_OVERFLOW;
+      if (signed_addr_p)
+	 *low = extract_signed_integer (loc_ptr, addr_size, byte_order);
+      else
+	 *low = extract_unsigned_integer (loc_ptr, addr_size, byte_order);
+      loc_ptr += addr_size;
+      *high = *low;
+      loc_ptr = gdb_read_uleb128 (loc_ptr, buf_end, &u64);
+      if (loc_ptr == NULL)
+	 return DEBUG_LOC_BUFFER_OVERFLOW;
+      *high += u64;
+      *new_ptr = loc_ptr;
+      return DEBUG_LOC_START_LENGTH;
     case DW_LLE_end_of_list:
       *new_ptr = loc_ptr;
       return DEBUG_LOC_END_OF_LIST;
@@ -197,6 +232,10 @@ decode_debug_loclists_addresses (struct dwarf2_per_cu_data *per_cu,
       *high = u64;
       *new_ptr = loc_ptr;
       return DEBUG_LOC_START_END;
+    /* Following cases are not supported yet.  */
+    case DW_LLE_startx_endx:
+    case DW_LLE_start_end:
+    case DW_LLE_default_location:
     default:
       return DEBUG_LOC_INVALID_ENTRY;
     }


             reply	other threads:[~2020-01-16 17:53 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-16 17:59 gdb-buildbot [this message]
2020-01-16 18:09 ` Failures on Ubuntu-Aarch64-native-extended-gdbserver-m64, branch master gdb-buildbot
2020-01-16 18:33 ` Failures on Ubuntu-Aarch64-native-gdbserver-m64, " gdb-buildbot
2020-01-17 13:45 ` *** COMPILATION FAILED *** Failures on Fedora-i686, branch master *** BREAKAGE *** gdb-buildbot
2020-01-17 13:59 ` *** COMPILATION FAILED *** Failures on Fedora-x86_64-m32, " gdb-buildbot
2020-01-17 14:17 ` Failures on Fedora-x86_64-m64, branch master gdb-buildbot
2020-01-17 14:37 ` *** COMPILATION FAILED *** Failures on Fedora-x86_64-native-gdbserver-m32, branch master *** BREAKAGE *** gdb-buildbot
2020-01-17 14:40 ` *** COMPILATION FAILED *** Failures on Fedora-x86_64-w64-mingw32, " gdb-buildbot
2020-01-17 14:41 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, branch master gdb-buildbot
2020-01-17 15:12 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " gdb-buildbot
2020-01-17 15:13 ` Failures on Fedora-x86_64-native-gdbserver-m64, " gdb-buildbot

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=3112ed9799124edf4d1f9c903da0d59f5a4ca102@gdb-build \
    --to=gdb-buildbot@sergiodj.net \
    --cc=gdb-testers@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).