Fixed vtable duplication for binary annotator (#7809)

This commit is contained in:
Derek Bailey
2023-02-02 12:39:39 -06:00
committed by GitHub
parent f838017860
commit 0fb5519585
28 changed files with 6807 additions and 6788 deletions

View File

@@ -131,7 +131,7 @@ static std::string ToValueString(const BinaryRegion &region,
// value.
// TODO(dbaileychess): It might be nicer to put this in the comment field.
if (IsOffset(region.type)) {
s += " Loc: +0x";
s += " Loc: 0x";
s += ToHex(region.points_to_offset, output_config.offset_max_char);
}
return s;

View File

@@ -196,14 +196,22 @@ uint64_t BinaryAnnotator::BuildHeader(const uint64_t header_offset) {
return root_table_offset.value();
}
void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset,
const reflection::Object *const table,
const uint64_t offset_of_referring_table) {
// First see if we have used this vtable before, if so skip building it again.
auto it = vtables_.find(vtable_offset);
if (it != vtables_.end()) { return; }
BinaryAnnotator::VTable *BinaryAnnotator::GetOrBuildVTable(
const uint64_t vtable_offset, const reflection::Object *const table,
const uint64_t offset_of_referring_table) {
// Get a list of vtables (if any) already defined at this offset.
std::list<VTable> &vtables = vtables_[vtable_offset];
if (ContainsSection(vtable_offset)) { return; }
// See if this vtable for the table type has been generated before.
for (VTable &vtable : vtables) {
if (vtable.referring_table == table) { return &vtable; }
}
// If we are trying to make a new vtable and it is already encompassed by
// another binary section, something is corrupted.
if (vtables.empty() && ContainsSection(vtable_offset)) { return nullptr; }
const std::string referring_table_name = table->name()->str();
BinaryRegionComment vtable_size_comment;
vtable_size_comment.type = BinaryRegionCommentType::VTableSize;
@@ -217,11 +225,11 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset,
AddSection(vtable_offset,
MakeSingleRegionBinarySection(
table->name()->str(), BinarySectionType::VTable,
referring_table_name, BinarySectionType::VTable,
MakeBinaryRegion(vtable_offset, remaining,
BinaryRegionType::Unknown, remaining, 0,
vtable_size_comment)));
return;
return nullptr;
}
// Vtables start with the size of the vtable
@@ -232,23 +240,23 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset,
// The vtable_size points to off the end of the binary.
AddSection(vtable_offset,
MakeSingleRegionBinarySection(
table->name()->str(), BinarySectionType::VTable,
referring_table_name, BinarySectionType::VTable,
MakeBinaryRegion(vtable_offset, sizeof(uint16_t),
BinaryRegionType::Uint16, 0, 0,
vtable_size_comment)));
return;
return nullptr;
} else if (vtable_size < 2 * sizeof(uint16_t)) {
SetError(vtable_size_comment, BinaryRegionStatus::ERROR_LENGTH_TOO_SHORT,
"4");
// The size includes itself and the table size which are both uint16_t.
AddSection(vtable_offset,
MakeSingleRegionBinarySection(
table->name()->str(), BinarySectionType::VTable,
referring_table_name, BinarySectionType::VTable,
MakeBinaryRegion(vtable_offset, sizeof(uint16_t),
BinaryRegionType::Uint16, 0, 0,
vtable_size_comment)));
return;
return nullptr;
}
std::vector<BinaryRegion> regions;
@@ -272,11 +280,11 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset,
"2");
AddSection(offset, MakeSingleRegionBinarySection(
table->name()->str(), BinarySectionType::VTable,
referring_table_name, BinarySectionType::VTable,
MakeBinaryRegion(
offset, remaining, BinaryRegionType::Unknown,
remaining, 0, ref_table_len_comment)));
return;
return nullptr;
}
// Then they have the size of the table they reference.
@@ -395,7 +403,7 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset,
(vtable_size - sizeof(uint16_t) - sizeof(uint16_t)) / sizeof(uint16_t);
// Prevent a bad binary from declaring a really large vtable_size, that we can
// not indpendently verify.
// not independently verify.
expectant_vtable_fields = std::min(
static_cast<uint16_t>(fields_processed * 3), expectant_vtable_fields);
@@ -427,15 +435,26 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset,
field_comment));
}
sections_[vtable_offset] = MakeBinarySection(
table->name()->str(), BinarySectionType::VTable, std::move(regions));
// If we have never added this vtable before record the Binary section.
if (vtables.empty()) {
sections_[vtable_offset] = MakeBinarySection(
referring_table_name, BinarySectionType::VTable, std::move(regions));
} else {
// Add the current table name to the name of the section.
sections_[vtable_offset].name += ", " + referring_table_name;
}
VTable vtable;
vtable.referring_table = table;
vtable.fields = std::move(fields);
vtable.table_size = table_size;
vtable.vtable_size = vtable_size;
vtables_[vtable_offset] = vtable;
// Add this vtable to the collection of vtables at this offset.
vtables.push_back(std::move(vtable));
// Return the vtable we just added.
return &vtables.back();
}
void BinaryAnnotator::BuildTable(const uint64_t table_offset,
@@ -491,19 +510,17 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset,
// Parse the vtable first so we know what the rest of the fields in the table
// are.
BuildVTable(vtable_offset, table, table_offset);
const VTable *const vtable =
GetOrBuildVTable(vtable_offset, table, table_offset);
auto vtable_entry = vtables_.find(vtable_offset);
if (vtable_entry == vtables_.end()) {
if (vtable == nullptr) {
// There is no valid vtable for this table, so we cannot process the rest of
// the table entries.
return;
}
const VTable &vtable = vtable_entry->second;
// This is the size and length of this table.
const uint16_t table_size = vtable.table_size;
const uint16_t table_size = vtable->table_size;
uint64_t table_end_offset = table_offset + table_size;
if (!IsValidOffset(table_end_offset - 1)) {
@@ -516,7 +533,7 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset,
// not by their IDs. So copy them over to another vector that we can sort on
// the offset_from_table property.
std::vector<VTable::Entry> fields;
for (const auto &vtable_field : vtable.fields) {
for (const auto &vtable_field : vtable->fields) {
fields.push_back(vtable_field.second);
}
@@ -707,7 +724,8 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset,
regions.push_back(MakeBinaryRegion(
field_offset, sizeof(uint32_t), BinaryRegionType::UOffset, 0,
offset_of_next_item, offset_field_comment));
BuildVector(offset_of_next_item, table, field, table_offset, vtable);
BuildVector(offset_of_next_item, table, field, table_offset,
vtable->fields);
} break;
case reflection::BaseType::Union: {
@@ -716,8 +734,8 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset,
// The union type field is always one less than the union itself.
const uint16_t union_type_id = field->id() - 1;
auto vtable_field = vtable.fields.find(union_type_id);
if (vtable_field == vtable.fields.end()) {
auto vtable_field = vtable->fields.find(union_type_id);
if (vtable_field == vtable->fields.end()) {
// TODO(dbaileychess): need to capture this error condition.
break;
}
@@ -959,11 +977,10 @@ void BinaryAnnotator::BuildString(const uint64_t string_offset,
BinarySectionType::String, std::move(regions)));
}
void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
const reflection::Object *const table,
const reflection::Field *const field,
const uint64_t parent_table_offset,
const VTable &vtable) {
void BinaryAnnotator::BuildVector(
const uint64_t vector_offset, const reflection::Object *const table,
const reflection::Field *const field, const uint64_t parent_table_offset,
const std::map<uint16_t, VTable::Entry> vtable_fields) {
if (ContainsSection(vector_offset)) { return; }
BinaryRegionComment vector_length_comment;
@@ -1011,7 +1028,7 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
regions.push_back(MakeBinaryRegion(vector_offset, sizeof(uint32_t),
BinaryRegionType::Uint32, 0, 0,
vector_length_comment));
// Consume the vector length offset.
uint64_t offset = vector_offset + sizeof(uint32_t);
switch (field->type()->element()) {
@@ -1079,6 +1096,7 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
offset, sizeof(uint32_t), BinaryRegionType::UOffset, 0,
table_offset, vector_object_comment));
// Consume the offset to the table.
offset += sizeof(uint32_t);
BuildTable(table_offset, BinarySectionType::Table, object);
@@ -1135,8 +1153,8 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
// location.
const uint16_t union_type_vector_id = field->id() - 1;
auto vtable_entry = vtable.fields.find(union_type_vector_id);
if (vtable_entry == vtable.fields.end()) {
auto vtable_entry = vtable_fields.find(union_type_vector_id);
if (vtable_entry == vtable_fields.end()) {
// TODO(dbaileychess): need to capture this error condition.
break;
}

View File

@@ -17,6 +17,7 @@
#ifndef FLATBUFFERS_BINARY_ANNOTATOR_H_
#define FLATBUFFERS_BINARY_ANNOTATOR_H_
#include <list>
#include <map>
#include <string>
#include <vector>
@@ -52,8 +53,8 @@ enum class BinaryRegionType {
template<typename T>
static inline std::string ToHex(T i, size_t width = sizeof(T)) {
std::stringstream stream;
stream << std::hex << std::uppercase << std::setfill('0') << std::setw(static_cast<int>(width))
<< i;
stream << std::hex << std::uppercase << std::setfill('0')
<< std::setw(static_cast<int>(width)) << i;
return stream.str();
}
@@ -257,6 +258,8 @@ class BinaryAnnotator {
uint16_t offset_from_table = 0;
};
const reflection::Object *referring_table;
// Field ID -> {field def, offset from table}
std::map<uint16_t, Entry> fields;
@@ -266,8 +269,12 @@ class BinaryAnnotator {
uint64_t BuildHeader(uint64_t offset);
void BuildVTable(uint64_t offset, const reflection::Object *table,
uint64_t offset_of_referring_table);
// VTables can be shared across instances or even across objects. This
// attempts to get an existing vtable given the offset and table type,
// otherwise it will built the vtable, memorize it, and return the built
// VTable. Returns nullptr if building the VTable fails.
VTable *GetOrBuildVTable(uint64_t offset, const reflection::Object *table,
uint64_t offset_of_referring_table);
void BuildTable(uint64_t offset, const BinarySectionType type,
const reflection::Object *table);
@@ -281,7 +288,7 @@ class BinaryAnnotator {
void BuildVector(uint64_t offset, const reflection::Object *table,
const reflection::Field *field, uint64_t parent_table_offset,
const VTable &vtable);
const std::map<uint16_t, VTable::Entry> vtable_fields);
std::string BuildUnion(uint64_t offset, uint8_t realized_type,
const reflection::Field *field);
@@ -382,7 +389,7 @@ class BinaryAnnotator {
const uint64_t binary_length_;
// Map of binary offset to vtables, to dedupe vtables.
std::map<uint64_t, VTable> vtables_;
std::map<uint64_t, std::list<VTable>> vtables_;
// The annotated binary sections, index by their absolute offset.
std::map<uint64_t, BinarySection> sections_;

View File

@@ -4,294 +4,294 @@
// Binary file: annotated_binary.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1]
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,11 +4,11 @@
// Binary file: tests/invalid_root_offset.bin
header:
+0x0000 | FF FF 00 00 | UOffset32 | 0x0000FFFF (65535) Loc: +0xFFFF | ERROR: offset to root table `AnnotatedBinary.Foo`. Invalid offset, points outside the binary.
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | FF FF 00 00 | UOffset32 | 0x0000FFFF (65535) Loc: 0xFFFF | ERROR: offset to root table `AnnotatedBinary.Foo`. Invalid offset, points outside the binary.
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references):
+0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[664] | ..:.h... | WARN: nothing refers to this section.
+0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[664] | ..:.h... | WARN: nothing refers to this section.
+0x0010 | 07 00 00 00 08 00 10 00 | | ........
+0x0018 | 14 00 30 00 34 00 09 00 | | ..0.4...
+0x0020 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D.

View File

@@ -4,11 +4,11 @@
// Binary file: tests/invalid_root_table_too_short.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references):
+0x08 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section.
+0x08 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section.
+0x10 | 07 00 00 00 08 00 10 00 | | ........
+0x18 | 14 00 30 00 34 00 09 00 | | ..0.4...
+0x20 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D.
@@ -18,4 +18,4 @@ unknown (no known references):
+0x40 | 00 00 64 00 | | ..d.
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 | ?uint8_t[2] | :. | ERROR: offset to vtable. Incomplete binary, expected to read 4 bytes.
+0x44 | 3A 00 | ?uint8_t[2] | :. | ERROR: offset to vtable. Incomplete binary, expected to read 4 bytes.

View File

@@ -4,11 +4,11 @@
// Binary file: tests/invalid_root_table_vtable_offset.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references):
+0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section.
+0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section.
+0x0010 | 07 00 00 00 08 00 10 00 | | ........
+0x0018 | 14 00 30 00 34 00 09 00 | | ..0.4...
+0x0020 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D.
@@ -18,10 +18,10 @@ unknown (no known references):
+0x0040 | 00 00 64 00 | | ..d.
root_table (AnnotatedBinary.Foo):
+0x0044 | FF FF 00 00 | SOffset32 | 0x0000FFFF (65535) Loc: +0xFFFFFFFFFFFF0045 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x0044 | FF FF 00 00 | SOffset32 | 0x0000FFFF (65535) Loc: 0xFFFFFFFFFFFF0045 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0048 | 00 00 00 01 02 02 01 01 | ?uint8_t[600] | ........ | WARN: nothing refers to this section.
+0x0048 | 00 00 00 01 02 02 01 01 | ?uint8_t[600] | ........ | WARN: nothing refers to this section.
+0x0050 | D2 04 00 00 28 02 00 00 | | ....(...
+0x0058 | 01 00 00 00 02 00 00 00 | | ........
+0x0060 | 0C 00 00 00 0A 00 00 00 | | ........

View File

@@ -4,292 +4,292 @@
// Binary file: tests/invalid_string_length.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | FF FF 00 00 | uint32_t | 0x0000FFFF (65535) | ERROR: length of string. Longer than the binary.
+0x00AC | FF FF 00 00 | uint32_t | 0x0000FFFF (65535) | ERROR: length of string. Longer than the binary.
unknown (no known references):
+0x00B0 | 61 6C 69 63 65 00 00 00 | ?uint8_t[8] | alice... | WARN: nothing refers to this section.
+0x00B0 | 61 6C 69 63 65 00 00 00 | ?uint8_t[8] | alice... | WARN: nothing refers to this section.
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1]
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,77 +4,77 @@
// Binary file: tests/invalid_string_length_cut_short.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x73 | 00 | uint8_t[1] | . | padding
+0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x94 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x134 | ERROR: offset to field `points_of_interest`. Invalid offset, points outside the binary.
+0x98 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x12C | ERROR: offset to field `foobars_type`. Invalid offset, points outside the binary.
+0x9C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0xD4 | ERROR: offset to field `foobars`. Invalid offset, points outside the binary.
+0xA0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0xD3 | ERROR: offset to field `measurement`. Invalid offset, points outside the binary.
+0xA4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0xC0 | ERROR: offset to field `anything`. Invalid offset, points outside the binary.
+0xA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0xAC | offset to field `charlie` (string)
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x73 | 00 | uint8_t[1] | . | padding
+0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x94 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x134 | ERROR: offset to field `points_of_interest`. Invalid offset, points outside the binary.
+0x98 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x12C | ERROR: offset to field `foobars_type`. Invalid offset, points outside the binary.
+0x9C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0xD4 | ERROR: offset to field `foobars`. Invalid offset, points outside the binary.
+0xA0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0xD3 | ERROR: offset to field `measurement`. Invalid offset, points outside the binary.
+0xA4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0xC0 | ERROR: offset to field `anything`. Invalid offset, points outside the binary.
+0xA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0xAC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0xAC | 05 00 | ?uint8_t[2] | .. | ERROR: length of string. Incomplete binary, expected to read 4 bytes.
+0xAC | 05 00 | ?uint8_t[2] | .. | ERROR: length of string. Incomplete binary, expected to read 4 bytes.

View File

@@ -4,69 +4,69 @@
// Binary file: tests/invalid_struct_array_field_cut_short.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 | ?uint8_t[2] | .. | ERROR: array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int). Incomplete binary, expected to read 4 bytes.
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 | ?uint8_t[2] | .. | ERROR: array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int). Incomplete binary, expected to read 4 bytes.

View File

@@ -4,66 +4,66 @@
// Binary file: tests/invalid_struct_field_cut_short.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 | ?uint8_t[2] | .. | ERROR: struct field `home.doors` of 'AnnotatedBinary.Building' (Int). Incomplete binary, expected to read 4 bytes.
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 | ?uint8_t[2] | .. | ERROR: struct field `home.doors` of 'AnnotatedBinary.Building' (Int). Incomplete binary, expected to read 4 bytes.

View File

@@ -4,74 +4,74 @@
// Binary file: tests/invalid_table_field_offset.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x73 | 00 | uint8_t[1] | . | padding
+0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x94 | A0 00 | ?uint8_t[2] | .. | ERROR: offset to field `points_of_interest`. Incomplete binary, expected to read 4 bytes.
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x73 | 00 | uint8_t[1] | . | padding
+0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x94 | A0 00 | ?uint8_t[2] | .. | ERROR: offset to field `points_of_interest`. Incomplete binary, expected to read 4 bytes.

View File

@@ -4,65 +4,65 @@
// Binary file: tests/invalid_table_field_size.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary.
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | ERROR: offset to field `home` (id: 5). Invalid offset, points outside the binary.
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to unknown field (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to unknown field (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary.
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | ERROR: offset to field `home` (id: 5). Invalid offset, points outside the binary.
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to unknown field (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to unknown field (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 | ?uint8_t[2] | .. | ERROR: table field `counter` (Int). Incomplete binary, expected to read 4 bytes.
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 | ?uint8_t[2] | .. | ERROR: table field `counter` (Int). Incomplete binary, expected to read 4 bytes.

View File

@@ -4,290 +4,290 @@
// Binary file: tests/invalid_union_type_value.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | FF | UType8 | 0xFF (255) | ERROR: table field `bar_baz_type` (UType). Invalid union type value.
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | ?uint8_t[4] | P... | WARN: nothing refers to this section.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | FF | UType8 | 0xFF (255) | ERROR: table field `bar_baz_type` (UType). Invalid union type value.
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | ?uint8_t[4] | P... | WARN: nothing refers to this section.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
unknown (no known references):
+0x01CA | 00 00 3A FF FF FF 00 00 | ?uint8_t[10] | ..:..... | WARN: nothing refers to this section.
+0x01CA | 00 00 3A FF FF FF 00 00 | ?uint8_t[10] | ..:..... | WARN: nothing refers to this section.
+0x01D2 | 00 03 | | ..
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1]
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,137 +4,137 @@
// Binary file: tests/invalid_vector_length_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 | ?uint8_t[2] | .. | ERROR: length of vector (# items). Incomplete binary, expected to read 4 bytes.
+0x0134 | 03 00 | ?uint8_t[2] | .. | ERROR: length of vector (# items). Incomplete binary, expected to read 4 bytes.

View File

@@ -4,187 +4,187 @@
// Binary file: tests/invalid_vector_scalars_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | ERROR: length of vector (# items). Longer than the binary.
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x01B8 | 09 00 08 00 07 00 01 00 | ?uint8_t[9] | ........ | WARN: nothing refers to this section.
+0x01B8 | 09 00 08 00 07 00 01 00 | ?uint8_t[9] | ........ | WARN: nothing refers to this section.
+0x01C0 | 02 | | .

View File

@@ -4,152 +4,152 @@
// Binary file: tests/invalid_vector_strings_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary.
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x0170 | 20 00 00 00 14 00 | ?uint8_t[6] | ..... | WARN: could be corrupted padding region.
+0x0170 | 20 00 00 00 14 00 | ?uint8_t[6] | ..... | WARN: could be corrupted padding region.

View File

@@ -4,143 +4,143 @@
// Binary file: tests/invalid_vector_structs_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary.
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x0138 | 33 33 33 33 33 A3 45 40 | ?uint8_t[28] | 33333.E@ | WARN: nothing refers to this section.
+0x0138 | 33 33 33 33 33 A3 45 40 | ?uint8_t[28] | 33333.E@ | WARN: nothing refers to this section.
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | | ~W..[.S.
+0x0148 | 8D F0 F6 20 04 B6 42 40 | | ... ..B@
+0x0150 | 9F 77 63 41 | | .wcA

View File

@@ -4,207 +4,207 @@
// Binary file: tests/invalid_vector_tables_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region.
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region.
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary.
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region.
+0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region.

View File

@@ -4,290 +4,290 @@
// Binary file: tests/invalid_vector_union_type_value.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | ?uint8_t[4] | ,... | WARN: nothing refers to this section.
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | ?uint8_t[4] | ,... | WARN: nothing refers to this section.
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
unknown (no known references):
+0x0104 | 04 00 04 00 04 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section.
+0x0104 | 04 00 04 00 04 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section.
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | FF | UType8 | 0xFF (255) | ERROR: value[1]. Invalid union type value.
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | FF | UType8 | 0xFF (255) | ERROR: value[1]. Invalid union type value.
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1]
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,207 +4,207 @@
// Binary file: tests/invalid_vector_unions_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary.
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region.
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region.
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary.
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region.
+0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region.

View File

@@ -4,283 +4,283 @@
// Binary file: tests/invalid_vtable_field_offset.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | FF FF | VOffset16 | 0xFFFF (65535) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary.
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | FF FF | VOffset16 | 0xFFFF (65535) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary.
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | ?uint8_t[4] | (... | WARN: nothing refers to this section.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | ?uint8_t[4] | (... | WARN: nothing refers to this section.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1]
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
+0x026F | 00 | char | 0x00 (0) | string terminator
unknown (no known references):
+0x0270 | 00 00 0A 00 16 00 0C 00 | ?uint8_t[34] | ........ | WARN: nothing refers to this section.
+0x0270 | 00 00 0A 00 16 00 0C 00 | ?uint8_t[34] | ........ | WARN: nothing refers to this section.
+0x0278 | 04 00 08 00 0A 00 00 00 | | ........
+0x0280 | 65 20 71 49 14 00 00 00 | | e qI....
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | | .v...$.@
+0x0290 | 00 00 | | ..
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
unknown (no known references):
+0x0298 | 06 00 00 00 00 00 00 01 | ?uint8_t[8] | ........ | WARN: nothing refers to this section.
+0x0298 | 06 00 00 00 00 00 00 01 | ?uint8_t[8] | ........ | WARN: nothing refers to this section.

View File

@@ -4,78 +4,78 @@
// Binary file: tests/invalid_vtable_ref_table_size.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of referring table. Longer than the binary.
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of referring table. Longer than the binary.
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x00AC | 05 00 00 00 61 6C 69 63 | uint8_t[500] | ....alic | padding
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
+0x00AC | 05 00 00 00 61 6C 69 63 | uint8_t[500] | ....alic | padding
+0x00B4 | 65 00 00 00 08 00 13 00 | | e.......
+0x00BC | 08 00 04 00 08 00 00 00 | | ........
+0x00C4 | 00 80 23 44 00 00 00 00 | | ..#D....
@@ -140,221 +140,221 @@ root_table (AnnotatedBinary.Foo):
+0x029C | 00 00 00 01 | | ....
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1]
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,294 +4,294 @@
// Binary file: tests/invalid_vtable_ref_table_size_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of referring table. Shorter than the minimum length:
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of referring table. Shorter than the minimum length:
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string)
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1]
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,17 +4,17 @@
// Binary file: tests/invalid_vtable_size.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of this vtable. Longer than the binary.
+0x000A | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of this vtable. Longer than the binary.
unknown (no known references):
+0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section.
+0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section.
+0x0014 | 08 00 10 00 14 00 30 00 | | ......0.
+0x001C | 34 00 09 00 38 00 3C 00 | | 4...8.<.
+0x0024 | 40 00 44 00 00 00 00 00 | | @.D.....

View File

@@ -4,17 +4,17 @@
// Binary file: tests/invalid_vtable_size_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of this vtable. Shorter than the minimum length:
+0x000A | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of this vtable. Shorter than the minimum length:
unknown (no known references):
+0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section.
+0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section.
+0x0014 | 08 00 10 00 14 00 30 00 | | ......0.
+0x001C | 34 00 09 00 38 00 3C 00 | | 4...8.<.
+0x0024 | 40 00 44 00 00 00 00 00 | | @.D.....

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
// Binary file: monsterdata_test.mon
header:
+0x0000 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x0078 | offset to root table `MyGame.Example.Monster`
+0x0000 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: 0x0078 | offset to root table `MyGame.Example.Monster`
+0x0004 | 4D 4F 4E 53 | char[4] | MONS | File Identifier
padding:
@@ -67,7 +67,7 @@ vtable (MyGame.Example.Monster):
+0x0076 | 6C 00 | VOffset16 | 0x006C (108) | offset to field `native_inline` (id: 51)
root_table (MyGame.Example.Monster):
+0x0078 | 6C 00 00 00 | SOffset32 | 0x0000006C (108) Loc: +0x000C | offset to vtable
+0x0078 | 6C 00 00 00 | SOffset32 | 0x0000006C (108) Loc: 0x000C | offset to vtable
+0x007C | 01 | UType8 | 0x01 (1) | table field `test_type` (UType)
+0x007D | 01 | uint8_t | 0x01 (1) | table field `testbool` (Bool)
+0x007E | 50 00 | int16_t | 0x0050 (80) | table field `hp` (Short)
@@ -83,22 +83,22 @@ root_table (MyGame.Example.Monster):
+0x009D | 00 | uint8_t[1] | . | padding
+0x009E | 00 00 | uint8_t[2] | .. | padding
+0x00A0 | 00 00 00 00 | uint8_t[4] | .... | padding
+0x00A4 | A4 01 00 00 | UOffset32 | 0x000001A4 (420) Loc: +0x0248 | offset to field `name` (string)
+0x00A8 | 94 01 00 00 | UOffset32 | 0x00000194 (404) Loc: +0x023C | offset to field `inventory` (vector)
+0x00AC | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: +0x01D8 | offset to field `test` (union of type `Monster`)
+0x00B0 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x01C0 | offset to field `test4` (vector)
+0x00B4 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x0190 | offset to field `testarrayofstring` (vector)
+0x00B8 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x017C | offset to field `enemy` (table)
+0x00A4 | A4 01 00 00 | UOffset32 | 0x000001A4 (420) Loc: 0x0248 | offset to field `name` (string)
+0x00A8 | 94 01 00 00 | UOffset32 | 0x00000194 (404) Loc: 0x023C | offset to field `inventory` (vector)
+0x00AC | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: 0x01D8 | offset to field `test` (union of type `Monster`)
+0x00B0 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: 0x01C0 | offset to field `test4` (vector)
+0x00B4 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x0190 | offset to field `testarrayofstring` (vector)
+0x00B8 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: 0x017C | offset to field `enemy` (table)
+0x00BC | 41 C9 79 DD | uint32_t | 0xDD79C941 (3715746113) | table field `testhashs32_fnv1` (Int)
+0x00C0 | 41 C9 79 DD | uint32_t | 0xDD79C941 (3715746113) | table field `testhashu32_fnv1` (UInt)
+0x00C4 | 71 A4 81 8E | uint32_t | 0x8E81A471 (2390860913) | table field `testhashs32_fnv1a` (Int)
+0x00C8 | 71 A4 81 8E | uint32_t | 0x8E81A471 (2390860913) | table field `testhashu32_fnv1a` (UInt)
+0x00CC | A8 00 00 00 | UOffset32 | 0x000000A8 (168) Loc: +0x0174 | offset to field `testarrayofbools` (vector)
+0x00D0 | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x0158 | offset to field `testarrayofsortedstruct` (vector)
+0x00D4 | E0 00 00 00 | UOffset32 | 0x000000E0 (224) Loc: +0x01B4 | offset to field `test5` (vector)
+0x00D8 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x020C | offset to field `vector_of_longs` (vector)
+0x00DC | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x01EC | offset to field `vector_of_doubles` (vector)
+0x00E0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x010C | offset to field `scalar_key_sorted_tables` (vector)
+0x00CC | A8 00 00 00 | UOffset32 | 0x000000A8 (168) Loc: 0x0174 | offset to field `testarrayofbools` (vector)
+0x00D0 | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: 0x0158 | offset to field `testarrayofsortedstruct` (vector)
+0x00D4 | E0 00 00 00 | UOffset32 | 0x000000E0 (224) Loc: 0x01B4 | offset to field `test5` (vector)
+0x00D8 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x020C | offset to field `vector_of_longs` (vector)
+0x00DC | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: 0x01EC | offset to field `vector_of_doubles` (vector)
+0x00E0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x010C | offset to field `scalar_key_sorted_tables` (vector)
+0x00E4 | 01 00 | int16_t | 0x0001 (1) | struct field `native_inline.a` of 'MyGame.Example.Test' (Short)
+0x00E6 | 02 | uint8_t | 0x02 (2) | struct field `native_inline.b` of 'MyGame.Example.Test' (Byte)
+0x00E7 | 00 | uint8_t[1] | . | padding
@@ -110,8 +110,8 @@ root_table (MyGame.Example.Monster):
vector (MyGame.Example.Monster.scalar_key_sorted_tables):
+0x010C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x0110 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0120 | offset to table[0]
+0x0114 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x013C | offset to table[1]
+0x0110 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0120 | offset to table[0]
+0x0114 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x013C | offset to table[1]
padding:
+0x0118 | 00 00 | uint8_t[2] | .. | padding
@@ -122,8 +122,8 @@ vtable (MyGame.Example.Stat):
+0x011E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 0)
table (MyGame.Example.Stat):
+0x0120 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x011A | offset to vtable
+0x0124 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0128 | offset to field `id` (string)
+0x0120 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x011A | offset to vtable
+0x0124 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0128 | offset to field `id` (string)
string (MyGame.Example.Stat.id):
+0x0128 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
@@ -138,10 +138,10 @@ vtable (MyGame.Example.Stat):
+0x013A | 06 00 | VOffset16 | 0x0006 (6) | offset to field `count` (id: 2)
table (MyGame.Example.Stat):
+0x013C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0132 | offset to vtable
+0x013C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0132 | offset to vtable
+0x0140 | 00 00 | uint8_t[2] | .. | padding
+0x0142 | 01 00 | uint16_t | 0x0001 (1) | table field `count` (UShort)
+0x0144 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0150 | offset to field `id` (string)
+0x0144 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0150 | offset to field `id` (string)
+0x0148 | 0A 00 00 00 00 00 00 00 | int64_t | 0x000000000000000A (10) | table field `val` (Long)
string (MyGame.Example.Stat.id):
@@ -165,8 +165,8 @@ vector (MyGame.Example.Monster.testarrayofbools):
+0x017A | 01 | uint8_t | 0x01 (1) | value[2]
table (MyGame.Example.Monster):
+0x017C | B0 FF FF FF | SOffset32 | 0xFFFFFFB0 (-80) Loc: +0x01CC | offset to vtable
+0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0184 | offset to field `name` (string)
+0x017C | B0 FF FF FF | SOffset32 | 0xFFFFFFB0 (-80) Loc: 0x01CC | offset to vtable
+0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0184 | offset to field `name` (string)
string (MyGame.Example.Monster.name):
+0x0184 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
@@ -178,8 +178,8 @@ padding:
vector (MyGame.Example.Monster.testarrayofstring):
+0x0190 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x0194 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x01A8 | offset to string[0]
+0x0198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x019C | offset to string[1]
+0x0194 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x01A8 | offset to string[0]
+0x0198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x019C | offset to string[1]
string (MyGame.Example.Monster.testarrayofstring):
+0x019C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -224,8 +224,8 @@ vtable (MyGame.Example.Monster):
+0x01D6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 3)
table (MyGame.Example.Monster):
+0x01D8 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x01CC | offset to vtable
+0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01E0 | offset to field `name` (string)
+0x01D8 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x01CC | offset to vtable
+0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01E0 | offset to field `name` (string)
string (MyGame.Example.Monster.name):
+0x01E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string