From patchwork Mon Oct 8 22:53:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Baldwin X-Patchwork-Id: 29675 Received: (qmail 72681 invoked by alias); 8 Oct 2018 22:54:38 -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 72608 invoked by uid 89); 8 Oct 2018 22:54:37 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS, SPF_SOFTFAIL autolearn=ham version=3.3.2 spammy=capability, TAG, 2180 X-HELO: mail.baldwin.cx Received: from bigwig.baldwin.cx (HELO mail.baldwin.cx) (96.47.65.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 08 Oct 2018 22:54:35 +0000 Received: from ralph.com (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id 43A7E10AFD2; Mon, 8 Oct 2018 18:54:33 -0400 (EDT) From: John Baldwin To: gdb-patches@sourceware.org, binutils@sourceware.org Subject: [PATCH 2/2] Treat all unknown auxv tags on FreeBSD as unknown. Date: Mon, 8 Oct 2018 15:53:19 -0700 Message-Id: <20181008225319.87243-2-jhb@FreeBSD.org> In-Reply-To: <20181008225319.87243-1-jhb@FreeBSD.org> References: <20181008225319.87243-1-jhb@FreeBSD.org> X-IsSubscribed: yes Previously, default_print_auxv_entry was called for any auxv entries without a known AT_FREEBSD_* tag. However, this resulted in false positive matches when FreeBSD added a new tag that has an existing AT_* tag with a different meaning. Instead, only call default_print_auxv_entry for specific tag values for which FreeBSD matches the default AT_* values. gdb/ChangeLog: * fbsd-tdep.c (fbsd_print_auxv_entry): Only use default_print_auxv_entry for specific tag values. --- gdb/ChangeLog | 5 +++++ gdb/fbsd-tdep.c | 26 ++++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 24aeb467b1..6300570b6f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-10-08 John Baldwin + + * fbsd-tdep.c (fbsd_print_auxv_entry): Only use + default_print_auxv_entry for specific tag values. + 2018-10-08 John Baldwin * fbsd-tdep.c (fbsd_print_auxv_entry): Handle AT_FREEBSD_HWCAP2. diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c index e948f28abc..28e8d0efc4 100644 --- a/gdb/fbsd-tdep.c +++ b/gdb/fbsd-tdep.c @@ -1483,12 +1483,29 @@ static void fbsd_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file, CORE_ADDR type, CORE_ADDR val) { - const char *name; - const char *description; - enum auxv_format format; + const char *name = "???"; + const char *description = ""; + enum auxv_format format = AUXV_FORMAT_HEX; switch (type) { + case AT_NULL: + case AT_IGNORE: + case AT_EXECFD: + case AT_PHDR: + case AT_PHENT: + case AT_PHNUM: + case AT_PAGESZ: + case AT_BASE: + case AT_FLAGS: + case AT_ENTRY: + case AT_NOTELF: + case AT_UID: + case AT_EUID: + case AT_GID: + case AT_EGID: + default_print_auxv_entry (gdbarch, file, type, val); + return; #define _TAGNAME(tag) #tag #define TAGNAME(tag) _TAGNAME(AT_##tag) #define TAG(tag, text, kind) \ @@ -1505,9 +1522,6 @@ fbsd_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file, TAG (EHDRFLAGS, _("ELF header e_flags"), AUXV_FORMAT_HEX); TAG (HWCAP, _("Machine-dependent CPU capability hints"), AUXV_FORMAT_HEX); TAG (HWCAP2, _("Extension of AT_HWCAP"), AUXV_FORMAT_HEX); - default: - default_print_auxv_entry (gdbarch, file, type, val); - return; } fprint_auxv_entry (file, name, description, format, type, val);