Debug context data of a process is organized as a structured sequence of tags with any associated data.
Offset |
Type |
Name |
Description |
---|---|---|---|
0 |
U8 |
TAG_ID |
Tag code |
1 |
U8[...] |
TAG_DATA |
Tag data (optional) |
Currently the tag codes provided are as follows:
Name |
Value |
Description |
---|---|---|
tag_invalid |
0 |
Invalid tag (reserved) |
tag_end |
1 |
End block (has no data) |
tag_begin_data |
2 |
Start main data block |
tag_begin_debug_files |
3 |
Debug file block start |
tag_debug_file |
4 |
Single debug file |
tag_begin_external_type_ids |
5 |
Start block ID external data types |
tag_external_type_id |
6 |
Single external data type ID |
Received data always have tag_begin_data as the start tag and tag_end as the end tag.
More complex tags (DATA_FMT=0x100) will be described below.
tag_debug_file
The tag payload is composed as follows:
Offset |
Type |
Name |
Description |
---|---|---|---|
0 |
U8 |
FILETYPE |
File type: 0 = invalid 1 = EELF/R4D file 2 = R4D file |
1 |
U8 |
- |
- |
2 |
U16 |
FILEPATH_L |
Length of the file path (including \0) |
4 |
U8[FILEPATH_L] |
FILE_PATH |
Full path file name (in flash) that contains debugging information |
U32 |
RELOC_FLAGS (#2) |
Relocation settings: 0x1 Enable path_id relocation 0x2 Enable relocation module_id 0x4 Enable relocation file_id 0x8 Enable relocation context_id 0x10 Enable relocation step_id 0x20 Enable relocation type_id 0x40 Enable relocation shared_module_id |
|
… |
U32 |
RELOC_PATH_ID_OFF |
Offset relocation path_id (#1) |
… |
U32 |
RELOC_MODULE_ID_OFF |
Offset relocation module_id (#1) |
… |
U32 |
RELOC_FILE_ID_OFF |
Offset relocation file_id (#1) |
… |
U32 |
RELOC_CONTEXT_ID_OFF |
Offset relocation context_id (#1) |
… |
U32 |
RELOC_STEP_ID_OFF |
Offset relocation step_id (#1) |
… |
U32 |
RELOC_TYPE_ID_OFF |
Offset relocation type_id (#1) |
… |
U32 |
RELOC_SHARED_MODULE_ID_OFF |
Offset relocation shared_module_id (#1) |
(#1) In case of value 0, and corresponding enable in reloc_flags, the ids in that category are queued to the corresponding ones in the previous debug file; if the category in reloc_flags is not enabled, the ids remain unchanged.
(#2) The default of the current implementation is always value 0x7f (all enable flags).
tag_external_type_id
The tag payload is composed as follows:
Offset |
Type |
Name |
Description |
---|---|---|---|
0 |
U16 |
- |
- |
2 |
U16 |
FULLNAME_L |
Full name length |
4 |
U8[FULLNAME_L] |
FULLNAME |
Qualified full name, various names are in reverse order |
… |
U32 |
TYPE_ID |
Value type ID |