From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id 194A93987C04 for ; Wed, 16 Jun 2021 07:46:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 194A93987C04 IronPort-SDR: Ma2f6rdfNXI1ywbmC84KzZJIfRSFUnpRzJQnKziDcHdG/gcxddw1mSZ59tr4zSt7nULZm1EjPf 6tvDuvjSxKBQ== X-IronPort-AV: E=McAfee;i="6200,9189,10016"; a="193442664" X-IronPort-AV: E=Sophos;i="5.83,277,1616482800"; d="scan'208";a="193442664" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2021 00:46:10 -0700 IronPort-SDR: WF6tT0r7wn7k8/mqKrRVh9wzYINHPPbfKzKiEOEXOj9I4dc41P4HzLKjpsY7tx+d7yA8Zy2KsM 1ZHJZnimm90w== X-IronPort-AV: E=Sophos;i="5.83,277,1616482800"; d="scan'208";a="621608339" Received: from mulvlfelix.iul.intel.com (HELO localhost) ([172.28.48.31]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2021 00:46:09 -0700 From: Felix Willgerodt To: markus.t.metzger@intel.com, gdb-patches@sourceware.org Subject: [PATCH v3 02/12] btrace: Enable auxiliary instructions in record instruction-history. Date: Wed, 16 Jun 2021 09:41:55 +0200 Message-Id: <20210616074205.1129553-3-felix.willgerodt@intel.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20210616074205.1129553-1-felix.willgerodt@intel.com> References: <20210616074205.1129553-1-felix.willgerodt@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2021 07:46:14 -0000 Print the auxiliary data when a btrace_insn of type BTRACE_INSN_AUX is encountered in the instruction-history. Printing is active by default, it can be silenced with the /a modifier. This patch is in preparation for the new ptwrite feature, which is based on auxiliary instructions. gdb/ChangeLog: 2021-06-14 Felix Willgerodt * record-btrace.c (btrace_insn_history): Handle BTRACE_INSN_AUX. * record.c (get_insn_history_modifiers): Add /a modifier. * disasm.h (gdb_disassembly_flag): Add DISASSEMBLY_OMIT_AUX_INSN. gdb/doc/ChangeLog: 2021-06-14 Felix Willgerodt * gdb.texinfo (record instruction history): Document /a modifier. --- gdb/disasm.h | 1 + gdb/doc/gdb.texinfo | 3 +++ gdb/record-btrace.c | 13 +++++++++++++ gdb/record.c | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/gdb/disasm.h b/gdb/disasm.h index eb82bc3cd01..4db5bd943eb 100644 --- a/gdb/disasm.h +++ b/gdb/disasm.h @@ -31,6 +31,7 @@ enum gdb_disassembly_flag DISASSEMBLY_OMIT_PC = (0x1 << 4), DISASSEMBLY_SOURCE = (0x1 << 5), DISASSEMBLY_SPECULATIVE = (0x1 << 6), + DISASSEMBLY_OMIT_AUX_INSN = (0x1 << 7), }; DEF_ENUM_FLAGS_TYPE (enum gdb_disassembly_flag, gdb_disassembly_flags); diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index ff4f41941d3..8f49a91347f 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -7883,6 +7883,9 @@ To better align the printed instructions when the trace contains instructions from more than one function, the function name may be omitted by specifying the @code{/f} modifier. +Printing auxiliary information is enabled by default and can be +omitted with the @code{/a} modifier. + Speculatively executed instructions are prefixed with @samp{?}. This feature is not available for all recording formats. diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index 00affb85d22..96c1b69cb0f 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -821,6 +821,19 @@ btrace_insn_history (struct ui_out *uiout, btrace_ui_out_decode_error (uiout, btrace_insn_get_error (&it), conf->format); } + else if (insn->iclass == BTRACE_INSN_AUX) + { + if ((flags & DISASSEMBLY_OMIT_AUX_INSN) != 0) + continue; + + uiout->field_fmt ("insn-number", "%u", btrace_insn_number (&it)); + uiout->text ("\t"); + uiout->spaces (3); + uiout->text ("["); + uiout->field_fmt ("aux-data", "%s", + it.btinfo->aux_data[insn->aux_data_index].c_str ()); + uiout->text ("]\n"); + } else { struct disasm_insn dinsn; diff --git a/gdb/record.c b/gdb/record.c index 6968c30d930..084c8a12c16 100644 --- a/gdb/record.c +++ b/gdb/record.c @@ -486,6 +486,9 @@ get_insn_history_modifiers (const char **arg) switch (*args) { + case 'a': + modifiers |= DISASSEMBLY_OMIT_AUX_INSN; + break; case 'm': case 's': modifiers |= DISASSEMBLY_SOURCE; @@ -854,6 +857,8 @@ With a /m or /s modifier, source lines are included (if available).\n\ With a /r modifier, raw instructions in hex are included.\n\ With a /f modifier, function names are omitted.\n\ With a /p modifier, current position markers are omitted.\n\ +With a /a modifier, omits output of auxiliary data, which is enabled \ +by default.\n\ With no argument, disassembles ten more instructions after the previous \ disassembly.\n\ \"record instruction-history -\" disassembles ten instructions before a \ -- 2.25.4 Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928