GDB remote serial protocol
E59606
The GDB remote serial protocol is a communication protocol that allows the GNU Debugger to control and inspect programs running on a separate target system over a serial or TCP connection.
Statements (58)
| Predicate | Object |
|---|---|
| instanceOf |
communication protocol
→
debugging protocol → remote debugging protocol → |
| abbreviation | RSP → |
| acknowledgmentCharacter | + → |
| checksumDelimiter | # → |
| commandExample |
G (write registers)
→
M (write memory) → Z0 (insert software breakpoint) → c (continue) → g (read registers) → m (read memory) → s (single-step) → z0 (remove software breakpoint) → |
| defines |
commands for controlling execution
→
commands for querying target status → commands for reading memory → commands for reading registers → commands for removing breakpoints → commands for setting breakpoints → commands for signaling target → commands for writing memory → commands for writing registers → packet-based message format → |
| designGoal |
low implementation complexity
→
operation over unreliable links → portability across architectures → |
| developedBy | Free Software Foundation → |
| hasFeature |
asynchronous notifications ("async packets")
→
checksum-protected packets → hardware breakpoints → qSupported feature negotiation → simple ASCII encoding → software breakpoints → stop reply packets → thread-aware debugging → vCont packet for advanced thread control → watchpoints → |
| negativeAcknowledgmentCharacter | - → |
| packetDelimiter | $ → |
| primaryPurpose |
controlling a program on a remote target
→
inspecting state of a remote program → remote debugging → |
| relatedTo |
GNU Debugger
→
debug stub → gdbserver → |
| replyForStop |
Sxx packet
→
Txx packet → |
| specifiedIn |
GDB
→
surface form:
GDB manual
|
| supportsTransport |
TCP connection
→
serial connection → |
| typicalTarget |
gdbserver
→
remote debug stub → |
| usedBy | GNU Debugger → |
| usedFor |
bare-metal debugging
→
cross-development → embedded systems debugging → kernel debugging → |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.