[Pdbg] [PATCH v2 00/39] gdbserver multi-threaded debugging and POWER9/10 support

Joel Stanley joel at jms.id.au
Tue May 3 17:47:08 AEST 2022


On Wed, 20 Apr 2022 at 06:50, Nicholas Piggin <npiggin at gmail.com> wrote:
>
> POWER10 is working well with sbefifo (modulo the start SBE command
> being buggy with stop states -- make sure you use powersave=off when
> testing this, until those can be fixed). POWER9 similarly works well,
> with the exception of breakpoints causing PSI interrupt storm.
>
> gdbserver itself was due for a bit of attention so there's a bunch of
> improvements and fixes.
>
> Multi-threaded debugging is implemented later in the series using the
> gdb "all-stop" threads model (all target threads are stopped if any is
> stopped).
>
> Since v1:
> - Made changes suggested by Joel (thanks).
> - Made a generated target, split out the regen of the stale
>   gdb_parser_precompile.c into that patch.
> - Make the double-ctrl-C really immediately kill.
> - Implemented multi-threaded debugging.
> - A few more smaller improvements (put_mem handling, breakpoint
>   command handling, returning more registers).
> - Redudce round trips further by returning registers with stop reason.
> - POWER9 support as well.
> - Proper SPATTN / attn detection and clearing for POWER9/10.

Looking good. Unless there's things you want to fix on the first go,
I'll merge these and you can send any improvements as follow up
patches?

Cheers,

Joel

>
> Thanks,
> Nick
>
>
> Nicholas Piggin (39):
>   libpdbg: fix p9chip and p10chip thread_stop
>   gdbserver: add a 'generated' make target, update
>     gdb_parser_precompile.c
>   gdbserver: rename detach command handler
>   gdbserver: fix put_mem command parsing
>   gdbserver: include <port> argument in command line help text
>   gdbserver: Document problem and workaround for client remote timeouts
>   gdbserver: print some client/server info
>   gdbserver: Make command callback array static
>   gdbserver: use standard compatibility test calls
>   gdbserver: fix read buffer overflow
>   gdbserver: reduce PR_INFO noise
>   gdbserver: fix interrupt double stop reason response
>   libpdbg: thread_regs don't print regs
>   gdbserver: lexer fixes
>   gdbserver: put_mem handle arbitrary lengths
>   gdbserver: implement NoAckMode
>   libpdbg: Remove enable_attn target command
>   gdbserver: disable attn after breaking
>   gdbserver: use read-modify-write for put_mem that is not 8-byte
>     aligned
>   gdbserver: enable POWER9 support
>   gdbserver: Add POWER10 support
>   gdbserver: check for attn using the SPATTN register
>   gdbserver: breakpoint instruction test current host endian when it is
>     required
>   gdbserver: catch ctrl-C to clean up host state
>   gdbserver: return more registers
>   gdbserver: initial thread support
>   gdbserver: track attn enablement by breakpoints
>   gdbproxy: implement get_thread / set_thread commands
>   gdbserver: add multi-threaded start/stop helper functions
>   gdbserver: tidy poll()
>   gdbserver: multi-thread polling and stop-reason
>   gdbserver: track stop reason per thread
>   gdbserver: multithread debugging support
>   gdbserver: allow gdbserver to start with targets running
>   gdbserver: better deal with threads initially stopped
>   gdbserver: send regs with stop reason
>   gdbserver: use thread_stop_all() / thread_start_all()
>   gdbserver: handle gdb breakpoint commands
>   gdbserver: remove fallback breakpoint support in put_mem
>
>  Makefile.am                 |   12 +
>  README.md                   |   45 +-
>  libpdbg/chip.c              |    2 -
>  libpdbg/hwunit.c            |    1 +
>  libpdbg/hwunit.h            |    2 +-
>  libpdbg/p10chip.c           |    8 +-
>  libpdbg/p8chip.c            |   31 -
>  libpdbg/p9chip.c            |    8 +-
>  libpdbg/thread.c            |    7 +-
>  src/gdb_parser.rl           |  124 +++-
>  src/gdb_parser_precompile.c |  478 ++++++++++-----
>  src/main.c                  |    2 +-
>  src/pdbgproxy.c             | 1121 +++++++++++++++++++++++++++++++----
>  src/pdbgproxy.h             |   11 +-
>  src/thread.c                |    2 +
>  15 files changed, 1495 insertions(+), 359 deletions(-)
>
> --
> 2.35.1
>
> --
> Pdbg mailing list
> Pdbg at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/pdbg


More information about the Pdbg mailing list