I was trying to make LLDB with gdbserver. The thinking was to make LLDB work with a proper gdb stub that may be helpful to communicate with other targets and QEMU down the line. The first thing I noted was gdbserver issuing warning when LLDB connects to it. When in no-ack mode, LLDB does not calculate the checksum while gdbserver still expects the proper checksum even in no-ack mode. The online documentation  says.
" When in no-acknowledgment mode, neither the stub nor gdb shall send or expect '+'/'-' protocol acknowledgments. The packet and response format still includes the normal checksum, as described in Overview, but the checksum may be ignored by the receiver".
So it seems to me that debugger is supposed to send the checksum even in no-ack mode. I had a quick look at lldb-gdb-remote.txt and it does not mention that LLDB is overriding this behaviour. This patch fixes this issue.
checksum.patch (745 Bytes)