From patchwork Wed Aug 29 14:18:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Darrington X-Patchwork-Id: 29103 Received: (qmail 99724 invoked by alias); 29 Aug 2018 14:18:57 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 99603 invoked by uid 89); 29 Aug 2018 14:18:56 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: jocasta.intra Received: from de.cellform.com (HELO jocasta.intra) (88.217.224.109) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 29 Aug 2018 14:18:55 +0000 Received: from jocasta.intra (localhost [127.0.0.1]) by jocasta.intra (8.15.2/8.15.2/Debian-8) with ESMTPS id w7TEIr1U026454 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 29 Aug 2018 16:18:53 +0200 Received: (from john@localhost) by jocasta.intra (8.15.2/8.15.2/Submit) id w7TEIqnA026450; Wed, 29 Aug 2018 16:18:52 +0200 From: John Darrington To: gdb-patches@sourceware.org Cc: John Darrington Subject: [PATCH 3/4] GDB: Add support for 24 bit addresses Date: Wed, 29 Aug 2018 16:18:44 +0200 Message-Id: <20180829141845.26378-4-john@darrington.wattle.id.au> In-Reply-To: <20180829141845.26378-1-john@darrington.wattle.id.au> References: <20180829141845.26378-1-john@darrington.wattle.id.au> * gdb/dwarf2-frame.c (encoding_for_size): Deal with case 3. (read_encoded_value): Deal with case DW_EH_PE_udata3 --- gdb/dwarf2-frame.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index f7dc820f4d..b329e34997 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -1527,12 +1527,14 @@ encoding_for_size (unsigned int size) { case 2: return DW_EH_PE_udata2; + case 3: + return DW_EH_PE_udata3; case 4: return DW_EH_PE_udata4; case 8: return DW_EH_PE_udata8; default: - internal_error (__FILE__, __LINE__, _("Unsupported address size")); + internal_error (__FILE__, __LINE__, _("Unsupported address size %d"), size); } } @@ -1605,6 +1607,9 @@ read_encoded_value (struct comp_unit *unit, gdb_byte encoding, case DW_EH_PE_udata2: *bytes_read_ptr += 2; return (base + bfd_get_16 (unit->abfd, (bfd_byte *) buf)); + case DW_EH_PE_udata3: + *bytes_read_ptr += 3; + return (base + bfd_get_24 (unit->abfd, (bfd_byte *) buf)); case DW_EH_PE_udata4: *bytes_read_ptr += 4; return (base + bfd_get_32 (unit->abfd, (bfd_byte *) buf));