public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@polymtl.ca>
To: Zied Guermazi <zied.guermazi@trande.de>, gdb-patches@sourceware.org
Subject: Re: [PATCH v3 0/7] extend branch tracing to use ARM CoreSight traces
Date: Fri, 2 Apr 2021 12:02:36 -0400	[thread overview]
Message-ID: <2b5cc0d3-cb97-6252-65dc-7b7db1d1e3f8@polymtl.ca> (raw)
In-Reply-To: <20210331025234.518688-1-zied.guermazi@trande.de>

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

  parent reply	other threads:[~2021-04-02 16:02 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-31  2:52 Zied Guermazi
2021-03-31  2:52 ` [PATCH v3 1/7] configure gdb build system for supporting btrace on arm processors Zied Guermazi
2021-03-31  2:52 ` [PATCH v3 2/7] add btrace coresight related commands Zied Guermazi
2021-03-31  6:32   ` Eli Zaretskii
2021-03-31 18:30   ` Luis Machado
2021-03-31 20:24     ` Zied Guermazi
2021-04-01 16:11       ` Luis Machado
2021-03-31  2:52 ` [PATCH v3 3/7] start/stop btrace with coresight etm and parse etm buffer. nat independant Zied Guermazi
2021-03-31 20:23   ` Luis Machado
     [not found]     ` <a78174f9-177f-3757-6b33-d09f38f1fec8@trande.de>
2021-04-01 21:04       ` Zied Guermazi
2021-03-31  2:52 ` [PATCH v3 4/7] start/stop btrace with coresight etm and collect etm buffer on linux os Zied Guermazi
2021-04-01 12:16   ` Luis Machado
2021-04-01 21:57     ` Zied Guermazi
2021-03-31  2:52 ` [PATCH v3 5/7] fix issue: gdb hangs in the command following a commad returning with TARGET_WAITKIND_NO_HISTORY Zied Guermazi
2021-04-01 12:18   ` Luis Machado
2021-03-31  2:52 ` [PATCH v3 6/7] add support for coresight btrace via remote protocol Zied Guermazi
2021-03-31  6:33   ` Eli Zaretskii
2021-04-01 12:45   ` Luis Machado
2021-04-01 22:58     ` Zied Guermazi
2021-03-31  2:52 ` [PATCH v3 7/7] adapt btrace testcases for arm target Zied Guermazi
2021-04-01 13:34   ` Luis Machado
2021-04-04 19:30     ` Zied Guermazi
2021-04-06 13:09       ` Luis Machado
2021-04-09 19:34         ` Zied Guermazi
2021-04-12 17:11           ` Luis Machado
2021-04-02 16:02 ` Simon Marchi [this message]
2021-04-02 16:05   ` [PATCH v3 0/7] extend branch tracing to use ARM CoreSight traces Zied Guermazi
2021-04-05  0:09     ` Simon Marchi
2021-04-05  7:38       ` Zied Guermazi
2021-04-06 16:25         ` Simon Marchi

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=2b5cc0d3-cb97-6252-65dc-7b7db1d1e3f8@polymtl.ca \
    --to=simon.marchi@polymtl.ca \
    --cc=gdb-patches@sourceware.org \
    --cc=zied.guermazi@trande.de \
    /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).