[Pdbg] [PATCH v2 00/38] gdbserver multi-threaded debugging and POWER9/10 support
Nicholas Piggin
npiggin at gmail.com
Wed Mar 30 02:48:53 AEDT 2022
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).
- 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.
Thanks,
Nick
Nicholas Piggin (38):
gdbserver: fix put_mem command parsing
libpdbg: fix p9chip and p10chip thread_stop
gdbserver: update gdb_parser_precompile.c, rename detach command
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 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: test endian when it is required
gdbserver: catch ctrl-C
gdbserver: return more registers
gdbserver: initial thread support
gdbserver: track attn enablement by breakpoints
gdbserver: 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
README.md | 38 +-
libpdbg/chip.c | 2 -
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 +
13 files changed, 1475 insertions(+), 359 deletions(-)
--
2.23.0
More information about the Pdbg
mailing list