Protocol Documentation¶
Table of Contents¶
debug/debug.proto¶
DebugConfigReq¶
Field | Type | Label | Description |
---|---|---|---|
instance | cc.arduino.cli.commands.Instance | Arduino Core Service instance from the Init response. |
|
fqbn | string | Fully qualified board name of the board in use (e.g., arduino:samd:mkr1000 ). If this is omitted, the FQBN attached to the sketch will be used. |
|
sketch_path | string | Path to the sketch that is running on the board. The compiled executable is expected to be located under this path. | |
port | string | Port of the debugger (optional). | |
interpreter | string | Which GDB command interpreter to use. | |
import_dir | string | Directory containing the compiled executable. If import_dir is not specified, the executable is assumed to be in {sketch_path}/build/{fqbn}/ . |
|
programmer | string | The programmer to use for debugging. |
DebugReq¶
The top-level message sent by the client for the Debug
method. Multiple DebugReq
messages can be sent but the first
message must contain a DebugConfigReq
message to initialize the debug session. All subsequent messages must contain
bytes to be sent to the debug session and must not contain a DebugReq
message.
Content must be either a debug session config or data to be sent.
Field | Type | Label | Description |
---|---|---|---|
debugReq | DebugConfigReq | Provides information to the debug that specifies which is the target. The first StreamingOpenReq message must contain a DebugReq message. |
|
data | bytes | The data to be sent to the target being monitored. | |
send_interrupt | bool | Set this to true to send and Interrupt signal to the debugger process |
DebugResp¶
GetDebugConfigResp¶
Field | Type | Label | Description |
---|---|---|---|
executable | string | The executable binary to debug | |
toolchain | string | The toolchain type used for the build (for example "gcc") | |
toolchain_path | string | The toolchain directory | |
toolchain_prefix | string | The toolchain architecture prefix (for example "arm-none-eabi-") | |
server | string | The GDB server type used to connect to the programmer/board (for example "openocd") | |
server_path | string | The GDB server directory | |
toolchain_configuration | GetDebugConfigResp.ToolchainConfigurationEntry | repeated | Extra configuration parameters wrt toolchain |
server_configuration | GetDebugConfigResp.ServerConfigurationEntry | repeated | Extra configuration parameters wrt GDB server |
GetDebugConfigResp.ServerConfigurationEntry¶
GetDebugConfigResp.ToolchainConfigurationEntry¶
Debug¶
Service that abstract a debug Session usage
Method Name | Request Type | Response Type | Description |
---|---|---|---|
Debug | DebugReq stream | DebugResp stream | Start a debug session and communicate with the debugger tool. |
GetDebugConfig | DebugConfigReq | GetDebugConfigResp |
Scalar Value Types¶
.proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
---|---|---|---|---|---|---|---|---|
double | double | double | float | float64 | double | float | Float | |
float | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |