summaryrefslogtreecommitdiff
path: root/sys/gdb
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2022-01-10 03:03:46 +0000
committerEd Maste <emaste@FreeBSD.org>2022-01-22 19:46:06 +0000
commit028a372fe2658ccf72ed481b9e942b28a59cb178 (patch)
tree518ec10ae9b0bb21f56f898b69a21d966507d928 /sys/gdb
parent6f6fbfa3a83578332f5605a97108ef28d6726c29 (diff)
Diffstat (limited to 'sys/gdb')
-rw-r--r--sys/gdb/gdb_packet.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/sys/gdb/gdb_packet.c b/sys/gdb/gdb_packet.c
index 9a85184eb49a..11ed5358848d 100644
--- a/sys/gdb/gdb_packet.c
+++ b/sys/gdb/gdb_packet.c
@@ -315,24 +315,16 @@ gdb_tx_end(void)
runlen--;
}
}
- if (runlen == 1) {
+ /* Don't emit '$', '#', '+', '-' or a run length below 3. */
+ while (runlen == 1 || runlen == 2 ||
+ runlen + 29 == '$' || runlen + 29 == '#' ||
+ runlen + 29 == '+' || runlen + 29 == '-') {
gdb_cur->gdb_putc(c);
cksum += c;
runlen--;
}
if (runlen == 0)
continue;
- /* Don't emit '$', '#', '+' or '-'. */
- if (runlen == 7) {
- gdb_cur->gdb_putc(c);
- cksum += c;
- runlen--;
- }
- if (runlen == 6 || runlen == 14 || runlen == 16) {
- gdb_cur->gdb_putc(c);
- cksum += c;
- runlen--;
- }
gdb_cur->gdb_putc('*');
cksum += '*';
gdb_cur->gdb_putc(runlen+29);