Protocol Documentation
Table of Contents
Top
cc/arduino/cli/debug/v1/debug.proto
DebugConfigRequest
Field
Type
Label
Description
instance
cc.arduino.cli.commands.v1.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
cc.arduino.cli.commands.v1.Port
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.
DebugRequest
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
debug_request
DebugConfigRequest
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
DebugResponse
Field
Type
Label
Description
data
bytes
Incoming data from the debugger tool.
error
string
Incoming error output from the debugger tool.
GetDebugConfigResponse
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
GetDebugConfigResponse.ToolchainConfigurationEntry
repeated
Extra configuration parameters wrt toolchain
server_configuration
GetDebugConfigResponse.ServerConfigurationEntry
repeated
Extra configuration parameters wrt GDB server
GetDebugConfigResponse.ServerConfigurationEntry
GetDebugConfigResponse.ToolchainConfigurationEntry
DebugService
DebugService abstracts a debug Session usage
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)