| Field | -Type | -Description | -||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| magic_number | -uint64 | -The Roku Brightscript debug protocol identifier, which is the following 64-bit value :0x0067756265647362LU. This is equal to 29120988069524322LU or the following little-endian value: b'bsdebug\0. |
-||||||||||||||
| protocol_major_version protocol_minor_version protocol_patch_version |
-uint32 | -Each Roku OS release supports only a single version of the Roku Brightscript debug protocol:
The debugger client must be updated to the protocol version number or disconnect. A change in the major version number indicates that changes that are not backwards-compatible have been made since the previous release. |
-||||||||||||||
| remaining_packet_length | -uint32 | -The length in bytes of the remaining data, including the remaining_packet_length itself. The debugger client must read this number of bytes. As of BrightScript debug protocol 3.0.0 ([Roku OS 11.0](doc:release-notes#roku-os-110)), all packets from the debugging target include a packet_length. The length is always in bytes, and includes the packet_length field, itself. This field avoids the need for changes to the major version of the protocol because it allows a debugger client to read past data it does not understand and is not critical to debugger operations. The debug target may intentionally send a packet_length longer than the actual data, with a small number of trailing padding bytes to complete the length. Clients must read the entire packet_length before expecting the next packet. |
-||||||||||||||
| platform_revision_timestamp | -int64 | -A platform-specific implementation timestamp (in milliseconds since epoch [1970-01-01T00:00:00.000Z]). As of BrightScript debug protocol 3.0.0 ([Roku OS 11.0](doc:release-notes#roku-os-110)), a timestamp is sent to the debugger client in the initial handshake. This timestamp is platform-specific data that is included in the system software of the platform being debugged. It is changed by the platform's vendor when there is any change that affects the behavior of the debugger. The value can be used in manners similar to a build number, and is primarily used to differentiate between pre-release builds of the platform being debugged. |
-||||||||||||||
| Field | +Type | +Description | +||||||||||||||
| magic_number | +uint64 | +The Roku Brightscript debug protocol identifier, which is the following 64-bit value :0x0067756265647362LU. This is equal to 29120988069524322LU or the following little-endian value: b'bsdebug\0. |
+ ||||||||||||||
| protocol_major_version protocol_minor_version protocol_patch_version |
+ uint32 | +
+ Each Roku OS release supports only a single version of the Roku Brightscript debug protocol:
+ +
+
+
+ The debugger client must be updated to the protocol version number or disconnect. A change in the major version number indicates that changes that are not backwards-compatible have been made since the previous release. + |
+ ||||||||||||||
| remaining_packet_length | +uint32 | +The length in bytes of the remaining data, including the remaining_packet_length itself. The debugger client must read this number of bytes. As of BrightScript debug protocol 3.0.0 ([Roku OS 11.0](doc:release-notes#roku-os-110)), all packets from the debugging target include a packet_length. The length is always in bytes, and includes the packet_length field, itself. This field avoids the need for changes to the major version of the protocol because it allows a debugger client to read past data it does not understand and is not critical to debugger operations. The debug target may intentionally send a packet_length longer than the actual data, with a small number of trailing padding bytes to complete the length. Clients must read the entire packet_length before expecting the next packet. |
+ ||||||||||||||
| platform_revision_timestamp | +int64 | +A platform-specific implementation timestamp (in milliseconds since epoch \[1970-01-01T00:00:00.000Z]). As of BrightScript debug protocol 3.0.0 ([Roku OS 11.0](doc:release-notes#roku-os-110)), a timestamp is sent to the debugger client in the initial handshake. This timestamp is platform-specific data that is included in the system software of the platform being debugged. It is changed by the platform's vendor when there is any change that affects the behavior of the debugger. The value can be used in manners similar to a build number, and is primarily used to differentiate between pre-release builds of the platform being debugged. |
+
| Field | -Type | -Description | -||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| packet_length | -uint32 | -The size of the packet to be sent. Example: (4 + 4 + 4 + sizeof(ARGUMENTS)) |
-||||||||||||||||||||||||||||
| request_id | -uint32 | -The ID of the debugger request (must be >=1). This ID is included in the debugger response. | -||||||||||||||||||||||||||||
| command_code | -uint32 | -An enum representing the debugging command being sent, which may be one of the following values:
See Debugging Commands for more information. |
-||||||||||||||||||||||||||||
| command_arguments (optional) | -uint8 | -Command-specific arguments (these may not be present for some commands) | -||||||||||||||||||||||||||||
| Field | +Type | +Description | +||||||||||||||||||||||||||||
| packet_length | +uint32 | +The size of the packet to be sent. Example: (4 + 4 + 4 + sizeof(ARGUMENTS)) |
+ ||||||||||||||||||||||||||||
| request_id | +uint32 | +The ID of the debugger request (must be >=1). This ID is included in the debugger response. | +||||||||||||||||||||||||||||
| command_code | +uint32 | +
+ An enum representing the debugging command being sent, which may be one of the following values:
+ +
+
+
+ See [Debugging Commands](#debugging-commands) for more information. + |
+ ||||||||||||||||||||||||||||
| command_arguments (optional) | +uint8 | +Command-specific arguments (these may not be present for some commands) | +
| Field | -Type | -Description | -||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| packet_length | -uint32 | -The size of the packet to be sent. Example: (4 + 4 + 4 + sizeof(ARGUMENTS)) |
-||||||||||||||||||||||||||||
| request_id | -uint32 | -The ID of the debugger request (must be >=1). This ID is included in the debugger response. | -||||||||||||||||||||||||||||
| command_code | -uint32 | -An enum representing the debugging command being sent, which may be one of the following values:
See Debugging Commands for more information. |
-||||||||||||||||||||||||||||
| command_arguments (optional) | -uint8 | -Command-specific arguments (these may not be present for some commands) | -||||||||||||||||||||||||||||
| Field | +Type | +Description | +||||||||||||||||||||||||||||
| packet_length | +uint32 | +The size of the packet to be sent. Example: (4 + 4 + 4 + sizeof(ARGUMENTS)) |
+ ||||||||||||||||||||||||||||
| request_id | +uint32 | +The ID of the debugger request (must be >=1). This ID is included in the debugger response. | +||||||||||||||||||||||||||||
| command_code | +uint32 | +
+ An enum representing the debugging command being sent, which may be one of the following values:
+ +
+
+
+ See [Debugging Commands](#debugging-commands) for more information. + |
+ ||||||||||||||||||||||||||||
| command_arguments (optional) | +uint8 | +Command-specific arguments (these may not be present for some commands) | +
| Field | -Type | -Description | -||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| packet_length | -uint32 | -The length of the packet in bytes, including this field | -||||||||||||||||||||||||||||||
| request_id | -uint32 | -The ID of the debugger request, which must be 0. This ID is included in the debugger response. 0 is a reserved value for the request_id in DebuggerUpdate messages; therefore, a debugging client may not send a DebuggerRequest with a request_id of 0. |
-||||||||||||||||||||||||||||||
| error_code | -uint32 | -An enum indicating the status of the request. If the debugger request was successful, a value of 0 is returned. This may be one of the following values:
|
-||||||||||||||||||||||||||||||
| update_type | -uint32 | -An enum representing the update being sent by the debugger, which may be one of the following values:
|
-||||||||||||||||||||||||||||||
| data | -uint8 | -The update data returned based on the update_type. This may be one of the following values:
|
-||||||||||||||||||||||||||||||
| Field | +Type | +Description | +||||||||||||||||||||||||||||||
| packet_length | +uint32 | +The length of the packet in bytes, including this field | +||||||||||||||||||||||||||||||
| request_id | +uint32 | +The ID of the debugger request, which must be 0. This ID is included in the debugger response. 0 is a reserved value for the request_id in DebuggerUpdate messages; therefore, a debugging client may not send a DebuggerRequest with a request_id of 0. |
+ ||||||||||||||||||||||||||||||
| error_code | +uint32 | +
+ An enum indicating the status of the request. If the debugger request was successful, a value of 0 is returned. This may be one of the following values:
+ +
+
+
|
+ ||||||||||||||||||||||||||||||
| update_type | +uint32 | +
+ An enum representing the update being sent by the debugger, which may be one of the following values:
+ +
+
+
|
+ ||||||||||||||||||||||||||||||
| data | +uint8 | +The update data returned based on the update_type. This may be one of the following values:
|
+