From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.polymtl.ca (smtp.polymtl.ca [132.207.4.11]) by sourceware.org (Postfix) with ESMTPS id 95BB03858D33 for ; Fri, 2 Apr 2021 16:02:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 95BB03858D33 Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 132G2auw010518 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 2 Apr 2021 12:02:41 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 132G2auw010518 Received: from [10.0.0.11] (192-222-157-6.qc.cable.ebox.net [192.222.157.6]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 573261E789; Fri, 2 Apr 2021 12:02:36 -0400 (EDT) Subject: Re: [PATCH v3 0/7] extend branch tracing to use ARM CoreSight traces To: Zied Guermazi , gdb-patches@sourceware.org References: <20210331025234.518688-1-zied.guermazi@trande.de> From: Simon Marchi Message-ID: <2b5cc0d3-cb97-6252-65dc-7b7db1d1e3f8@polymtl.ca> Date: Fri, 2 Apr 2021 12:02:36 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <20210331025234.518688-1-zied.guermazi@trande.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Fri, 2 Apr 2021 16:02:36 +0000 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, 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: Fri, 02 Apr 2021 16:02:45 -0000 On 2021-03-30 10:52 p.m., Zied Guermazi wrote: > This patch set adds support for branch tracing in GDB on arm platforms > using coresight etm traces > Branch tracing offers instructions and functions histories as well as > execution record and replay (forwards and reverse debugging) > this patch set was tested using the gdb.btrace testsuite on ARMv7 and ARMv8 > cortex A processors running linux operating system with coresight drivers. > > test results of gdb.btrace testsuite on ARMv8, variation unix > # of expected passes 595 > # of unexpected failures 1 > # of unsupported tests 1 > > test results of gdb.btrace testsuite on ARMv8 variation native-gdbserver > # of expected passes 582 > # of unexpected failures 4 > # of unsupported tests 2 > > test results of gdb.btrace testsuite on ARMv7, variation unix > > test results of gdb.btrace testsuite on ARMv7 variation native-gdbserver > > > known limitations: > for arm v7 only > - some registers needed for breakpoint address calculation in forwards > executions may be missing. > for arm v7 and arm v8 > - sometimes trace buffers are not flushed properly or flushed in > the buffer of a different thread. this was observed > in test scripts only. > - sometimes, in non-stop mode, while executing "stepi n" for two threads > in parallel, a thread is hitting breakpoints intended for stepping > the other one. > Gdb recognizes that it is intended for the second thread, > but decreases the step counter. leading to a stepping less than "n" > times. > patches are: > > Zied Guermazi (7): > configure gdb build system for supporting btrace on arm processors > add btrace coresight related commands > start/stop btrace with coresight etm and parse etm buffer. nat > independant > start/stop btrace with coresight etm and collect etm buffer on linux > os > fix issue: gdb hangs in the command following a commad returning with > TARGET_WAITKIND_NO_HISTORY > add support for coresight btrace via remote protocol > adapt btrace testcases for arm target > > gdb/ChangeLog | 139 +++ > gdb/Makefile.in | 5 +- > gdb/NEWS | 30 + > gdb/aarch64-linux-nat.c | 68 ++ > gdb/arch/arm.h | 33 + > gdb/arm-linux-nat.c | 68 ++ > gdb/btrace.c | 977 +++++++++++++++++- > gdb/btrace.h | 16 +- > gdb/config.in | 3 + > gdb/configure | 545 ++++++++++ > gdb/configure.nat | 4 +- > gdb/doc/gdb.texinfo | 115 ++- > gdb/features/btrace-conf.dtd | 10 +- > gdb/features/btrace.dtd | 38 +- > gdb/infrun.c | 3 +- > gdb/nat/linux-btrace.c | 400 ++++++- > gdb/nat/linux-btrace.h | 19 + > gdb/record-btrace.c | 168 ++- > gdb/record.c | 2 + > gdb/remote.c | 66 +- > .../gdb.btrace/aarch64-instruction_history.S | 31 + > .../gdb.btrace/aarch64-record_goto.S | 400 +++++++ > .../gdb.btrace/aarch64-tailcall-only.S | 517 +++++++++ > gdb/testsuite/gdb.btrace/aarch64-tailcall.S | 409 ++++++++ > .../gdb.btrace/arm-instruction_history.S | 31 + > gdb/testsuite/gdb.btrace/arm-record_goto.S | 433 ++++++++ > gdb/testsuite/gdb.btrace/arm-tailcall-only.S | 504 +++++++++ > gdb/testsuite/gdb.btrace/arm-tailcall.S | 391 +++++++ > gdb/testsuite/gdb.btrace/buffer-size.exp | 15 +- > gdb/testsuite/gdb.btrace/delta.exp | 10 + > .../gdb.btrace/instruction_history.exp | 107 +- > gdb/testsuite/gdb.btrace/non-stop.exp | 60 +- > gdb/testsuite/gdb.btrace/record_goto.exp | 241 +++-- > gdb/testsuite/gdb.btrace/stepi.exp | 95 +- > gdb/testsuite/gdb.btrace/tailcall-only.exp | 8 + > gdb/testsuite/gdb.btrace/tailcall.exp | 46 +- > ...on_history.S => x86-instruction_history.S} | 0 > gdb/testsuite/lib/gdb.exp | 2 +- > gdb/top.c | 10 +- > gdbserver/ChangeLog | 16 + > gdbserver/config.in | 3 + > gdbserver/configure | 545 ++++++++++ > gdbserver/configure.srv | 4 + > gdbserver/linux-low.cc | 104 +- > gdbserver/server.cc | 34 +- > gdbsupport/ChangeLog | 29 + > gdbsupport/Makefile.in | 3 + > gdbsupport/btrace-common.cc | 46 + > gdbsupport/btrace-common.h | 115 ++- > gdbsupport/common.m4 | 39 + > gdbsupport/config.in | 3 + > gdbsupport/configure | 545 ++++++++++ > 52 files changed, 7347 insertions(+), 158 deletions(-) > create mode 100644 gdb/testsuite/gdb.btrace/aarch64-instruction_history.S > create mode 100644 gdb/testsuite/gdb.btrace/aarch64-record_goto.S > create mode 100644 gdb/testsuite/gdb.btrace/aarch64-tailcall-only.S > create mode 100644 gdb/testsuite/gdb.btrace/aarch64-tailcall.S > create mode 100644 gdb/testsuite/gdb.btrace/arm-instruction_history.S > create mode 100644 gdb/testsuite/gdb.btrace/arm-record_goto.S > create mode 100644 gdb/testsuite/gdb.btrace/arm-tailcall-only.S > create mode 100644 gdb/testsuite/gdb.btrace/arm-tailcall.S > rename gdb/testsuite/gdb.btrace/{instruction_history.S => x86-instruction_history.S} (100%) > Hi Zied, I'd like to take a quick look, but I am not able to apply your patchset, it seems you weren't on the latest master at the time you sent it. Do you know which sha1 your patchset applies on? Simon