The gdb server protocol is used in a debug setup between gdb and the gdbserver. The gdbserver is the driver/software interface of the JATG/SWD probe. This allows the user to use an(optional) IDE with gdb to debug firmware running on a MCU.
+------------------+
|        User      |
+------------------+
          |
+------------------+
|        IDE       |
+------------------+
          |
+------------------+
|        gdb       |
+------------------+
          |
          |     <-- gdb server protocol is used here
          |
+------------------+
|     gdb server   |
+------------------+
          |
+------------------+
| JTAG / SWD probe |
+------------------+
          |
+------------------+
|        MCU       |
+------------------+
The remote protocol is specified in Appendix E of the gdb documentation. Wherever appropriate large parts of that documentation have been copied here.
The protocol is used over a serial byte data stream. Examples are a serial port (UART/COM Port) or a TCP port. The data is exchanged over this channel in packets. In this communication the gdb sends commands and the gdb server sends replies.
In the documentation format strings everything [inside of square brackets] is optional and can be missing.
| Word / Abbreviation | Explanation | 
|---|---|
| IDE | Integrated Development environment | 
| MCU | Micro Controller Unit | 
| addressable memory units | TODO |