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 
float 
float64 
double 
float 
Float 
 
float 
float 
float 
float32 
float 
float 
Float 
 
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) 
 
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 
 
Uses variable-length encoding. 
uint32 
int 
int/long 
uint32 
uint 
integer 
Bignum or Fixnum (as required) 
 
Uses variable-length encoding. 
uint64 
long 
int/long 
uint64 
ulong 
integer/string 
Bignum or Fixnum (as required) 
 
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) 
 
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 
 
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) 
 
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. 
uint64 
long 
int/long 
uint64 
ulong 
integer/string 
Bignum 
 
Always four bytes. 
int32 
int 
int 
int32 
int 
integer 
Bignum or Fixnum (as required) 
 
Always eight bytes. 
int64 
long 
int/long 
int64 
long 
integer/string 
Bignum 
 
bool 
boolean 
boolean 
bool 
bool 
boolean 
TrueClass/FalseClass 
 
A string must always contain UTF-8 encoded or 7-bit ASCII text. 
string 
String 
str/unicode 
string 
string 
string 
String (UTF-8) 
 
May contain any arbitrary sequence of bytes. 
string 
ByteString 
str 
[]byte 
ByteString 
string 
String (ASCII-8BIT)