This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 0/4] Allow larger sizes for tracepoint register masks
- From: Pedro Franco de Carvalho <pedromfc at linux dot vnet dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Cc: uweigand at de dot ibm dot com
- Date: Wed, 20 Jun 2018 18:08:51 -0300
- Subject: [PATCH 0/4] Allow larger sizes for tracepoint register masks
Currently, the size of the register mask for tracepoint action packets
is limited to 32 bytes, due to the size of an internal array. This
patch series changes the array to a vector so that it can be sized
according to the number of registers in the arch.
The motivation for this is that I'm working on enabling additional
registers for powerpc, and there are more registers that can be
represented with the current mask size, so actions like "collect
$regs" don't work.
The series also changes the remote target to use the remote packet
size when sending tracepoint packets, because with larger masks it no
longer can be assumed that the mask will fit in a packet.
Patches 1-2 fix minor issues in remote_target::download_tracepoint, so
that patch 3 can change the method to use the remote packet
size. Patch 1 fixes an indentation error, and patch 2 fixes an error
that caused the last QTDP action packet to include the '-' trailing
indicator for additional action packets.
Patch 3 uses the remote packet size for the buffer used to build the
QTDP packets and changes all writes to this buffer to xsnprintf.
Patch 4 changes collection_list to build a variable-sized register
mask.
I also noticed that collection_list sometimes uses local register
numbers, and sometimes remote register numbers to set the bits in the
register mask, and allows pseudoregister numbers to be set in the
mask, but his issue isn't fixed in this series.
Pedro Franco de Carvalho (4):
Fix indentation in remote_target::download_tracepoint
Remove trailing '-' from the last QTDP action packet
Use get_remote_packet_size in download_tracepoint
Variable size for regs mask in collection list
gdb/remote.c | 102 ++++++++++++++++++++++++++++++++-----------------------
gdb/tracepoint.c | 28 +++++++++++----
gdb/tracepoint.h | 2 +-
3 files changed, 82 insertions(+), 50 deletions(-)
--
2.13.6