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. // value.
// TODO(dbaileychess): It might be nicer to put this in the comment field. // TODO(dbaileychess): It might be nicer to put this in the comment field.
if (IsOffset(region.type)) { if (IsOffset(region.type)) {
s += " Loc: +0x"; s += " Loc: 0x";
s += ToHex(region.points_to_offset, output_config.offset_max_char); s += ToHex(region.points_to_offset, output_config.offset_max_char);
} }
return s; return s;

View File

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

View File

@@ -17,6 +17,7 @@
#ifndef FLATBUFFERS_BINARY_ANNOTATOR_H_ #ifndef FLATBUFFERS_BINARY_ANNOTATOR_H_
#define FLATBUFFERS_BINARY_ANNOTATOR_H_ #define FLATBUFFERS_BINARY_ANNOTATOR_H_
#include <list>
#include <map> #include <map>
#include <string> #include <string>
#include <vector> #include <vector>
@@ -52,8 +53,8 @@ enum class BinaryRegionType {
template<typename T> template<typename T>
static inline std::string ToHex(T i, size_t width = sizeof(T)) { static inline std::string ToHex(T i, size_t width = sizeof(T)) {
std::stringstream stream; std::stringstream stream;
stream << std::hex << std::uppercase << std::setfill('0') << std::setw(static_cast<int>(width)) stream << std::hex << std::uppercase << std::setfill('0')
<< i; << std::setw(static_cast<int>(width)) << i;
return stream.str(); return stream.str();
} }
@@ -257,6 +258,8 @@ class BinaryAnnotator {
uint16_t offset_from_table = 0; uint16_t offset_from_table = 0;
}; };
const reflection::Object *referring_table;
// Field ID -> {field def, offset from table} // Field ID -> {field def, offset from table}
std::map<uint16_t, Entry> fields; std::map<uint16_t, Entry> fields;
@@ -266,7 +269,11 @@ class BinaryAnnotator {
uint64_t BuildHeader(uint64_t offset); uint64_t BuildHeader(uint64_t offset);
void BuildVTable(uint64_t offset, const reflection::Object *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); uint64_t offset_of_referring_table);
void BuildTable(uint64_t offset, const BinarySectionType type, void BuildTable(uint64_t offset, const BinarySectionType type,
@@ -281,7 +288,7 @@ class BinaryAnnotator {
void BuildVector(uint64_t offset, const reflection::Object *table, void BuildVector(uint64_t offset, const reflection::Object *table,
const reflection::Field *field, uint64_t parent_table_offset, 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, std::string BuildUnion(uint64_t offset, uint8_t realized_type,
const reflection::Field *field); const reflection::Field *field);
@@ -382,7 +389,7 @@ class BinaryAnnotator {
const uint64_t binary_length_; const uint64_t binary_length_;
// Map of binary offset to vtables, to dedupe vtables. // 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. // The annotated binary sections, index by their absolute offset.
std::map<uint64_t, BinarySection> sections_; std::map<uint64_t, BinarySection> sections_;

View File

@@ -4,7 +4,7 @@
// Binary file: annotated_binary.bin // Binary file: annotated_binary.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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) +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,19 +101,19 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding +0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -122,17 +122,17 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding +0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -156,9 +156,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -204,14 +204,14 @@ padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding +0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars): vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding: padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding +0x01E0 | 00 00 | uint8_t[2] | .. | padding
@@ -224,9 +224,9 @@ vtable (AnnotatedBinary.Bar):
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable +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) +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) +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) +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 +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
@@ -236,7 +236,7 @@ vtable (AnnotatedBinary.Baz):
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding +0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -248,14 +248,14 @@ vtable (AnnotatedBinary.Bar):
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding +0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -280,9 +280,9 @@ vtable (AnnotatedBinary.Bar):
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable +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) +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) +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) +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding +0x0290 | 00 00 | uint8_t[2] | .. | padding
@@ -292,6 +292,6 @@ vtable (AnnotatedBinary.Baz):
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding +0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_root_offset.bin // Binary file: tests/invalid_root_offset.bin
header: header:
+0x0000 | FF FF 00 00 | UOffset32 | 0x0000FFFF (65535) Loc: +0xFFFF | ERROR: offset to root table `AnnotatedBinary.Foo`. Invalid offset, points outside the binary. +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references): unknown (no known references):

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_root_table_too_short.bin // Binary file: tests/invalid_root_table_too_short.bin
header: header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` +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 +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references): unknown (no known references):

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_root_table_vtable_offset.bin // Binary file: tests/invalid_root_table_vtable_offset.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references): unknown (no known references):
@@ -18,7 +18,7 @@ unknown (no known references):
+0x0040 | 00 00 64 00 | | ..d. +0x0040 | 00 00 64 00 | | ..d.
root_table (AnnotatedBinary.Foo): 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): 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.

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_string_length.bin // Binary file: tests/invalid_string_length.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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) +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): 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.
@@ -89,7 +89,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -99,19 +99,19 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding +0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -120,17 +120,17 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding +0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -154,9 +154,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -202,14 +202,14 @@ padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding +0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars): vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding: padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding +0x01E0 | 00 00 | uint8_t[2] | .. | padding
@@ -222,9 +222,9 @@ vtable (AnnotatedBinary.Bar):
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable +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) +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) +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) +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 +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
@@ -234,7 +234,7 @@ vtable (AnnotatedBinary.Baz):
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding +0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -246,14 +246,14 @@ vtable (AnnotatedBinary.Bar):
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding +0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -278,9 +278,9 @@ vtable (AnnotatedBinary.Bar):
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable +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) +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) +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) +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding +0x0290 | 00 00 | uint8_t[2] | .. | padding
@@ -290,6 +290,6 @@ vtable (AnnotatedBinary.Baz):
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding +0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_string_length_cut_short.bin // Binary file: tests/invalid_string_length_cut_short.bin
header: header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` +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 +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding +0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x71 | 02 | uint8_t | 0x02 (2) | 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) +0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x73 | 00 | uint8_t[1] | . | padding +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. +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. +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. +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. +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. +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. +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) +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. +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. +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. +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. +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. +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. +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) +0xA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0xAC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): 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,7 +4,7 @@
// Binary file: tests/invalid_struct_array_field_cut_short.bin // Binary file: tests/invalid_struct_array_field_cut_short.bin
header: header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` +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 +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -56,7 +56,7 @@ vtable (AnnotatedBinary.Foo):
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding +0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -64,7 +64,7 @@ root_table (AnnotatedBinary.Foo):
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_struct_field_cut_short.bin // Binary file: tests/invalid_struct_field_cut_short.bin
header: header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` +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 +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -56,7 +56,7 @@ vtable (AnnotatedBinary.Foo):
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding +0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -64,6 +64,6 @@ root_table (AnnotatedBinary.Foo):
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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. +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,7 +4,7 @@
// Binary file: tests/invalid_table_field_offset.bin // Binary file: tests/invalid_table_field_offset.bin
header: header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` +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 +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -47,7 +47,7 @@ vtable (AnnotatedBinary.Foo):
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding +0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -55,7 +55,7 @@ root_table (AnnotatedBinary.Foo):
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -66,12 +66,12 @@ root_table (AnnotatedBinary.Foo):
+0x71 | 02 | uint8_t | 0x02 (2) | 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) +0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x73 | 00 | uint8_t[1] | . | padding +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. +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. +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. +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. +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. +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. +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) +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. +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. +0x94 | A0 00 | ?uint8_t[2] | .. | ERROR: offset to field `points_of_interest`. Incomplete binary, expected to read 4 bytes.

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_table_field_size.bin // Binary file: tests/invalid_table_field_size.bin
header: header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` +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 +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -58,7 +58,7 @@ vtable (AnnotatedBinary.Foo):
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding +0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_union_type_value.bin // Binary file: tests/invalid_union_type_value.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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) +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +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) +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. +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,19 +101,19 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding +0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -122,17 +122,17 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding +0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -156,9 +156,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -206,8 +206,8 @@ unknown (no known references):
vector (AnnotatedBinary.Foo.bars): vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding: padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding +0x01E0 | 00 00 | uint8_t[2] | .. | padding
@@ -220,9 +220,9 @@ vtable (AnnotatedBinary.Bar):
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable +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) +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) +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) +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 +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
@@ -232,7 +232,7 @@ vtable (AnnotatedBinary.Baz):
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding +0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -244,14 +244,14 @@ vtable (AnnotatedBinary.Bar):
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding +0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -276,9 +276,9 @@ vtable (AnnotatedBinary.Bar):
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable +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) +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) +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) +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding +0x0290 | 00 00 | uint8_t[2] | .. | padding
@@ -288,6 +288,6 @@ vtable (AnnotatedBinary.Baz):
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding +0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vector_length_cut_short.bin // Binary file: tests/invalid_vector_length_cut_short.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +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. +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. +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. +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. +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. +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. +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) +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. +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,12 +101,12 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.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): 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.
@@ -119,10 +119,10 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): 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): 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.

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vector_scalars_cut_short.bin // Binary file: tests/invalid_vector_scalars_cut_short.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +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. +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. +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. +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,12 +101,12 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.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): 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.
@@ -119,10 +119,10 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): 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): 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.
@@ -150,9 +150,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vector_strings_cut_short.bin // Binary file: tests/invalid_vector_strings_cut_short.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +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. +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. +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. +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. +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. +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. +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,12 +101,12 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.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): 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.
@@ -119,10 +119,10 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): 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): 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.

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vector_structs_cut_short.bin // Binary file: tests/invalid_vector_structs_cut_short.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +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. +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. +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. +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. +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. +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. +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) +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. +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,12 +101,12 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.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): 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.
@@ -119,10 +119,10 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): 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): 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.

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vector_tables_cut_short.bin // Binary file: tests/invalid_vector_tables_cut_short.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +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. +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,12 +101,12 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.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): 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.
@@ -119,10 +119,10 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): 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): 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.
@@ -150,9 +150,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -198,7 +198,7 @@ padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding +0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz): 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): 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.

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vector_union_type_value.bin // Binary file: tests/invalid_vector_union_type_value.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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) +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,19 +101,19 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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. +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding +0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -121,14 +121,14 @@ 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): table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding +0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -152,9 +152,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -200,14 +200,14 @@ padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding +0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars): vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding: padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding +0x01E0 | 00 00 | uint8_t[2] | .. | padding
@@ -220,9 +220,9 @@ vtable (AnnotatedBinary.Bar):
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable +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) +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) +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) +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 +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
@@ -232,7 +232,7 @@ vtable (AnnotatedBinary.Baz):
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding +0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -244,14 +244,14 @@ vtable (AnnotatedBinary.Bar):
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding +0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -276,9 +276,9 @@ vtable (AnnotatedBinary.Bar):
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable +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) +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) +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) +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding +0x0290 | 00 00 | uint8_t[2] | .. | padding
@@ -288,6 +288,6 @@ vtable (AnnotatedBinary.Baz):
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding +0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vector_unions_cut_short.bin // Binary file: tests/invalid_vector_unions_cut_short.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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. +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +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. +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,12 +101,12 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.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): 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.
@@ -119,10 +119,10 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): 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): 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.
@@ -150,9 +150,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -198,7 +198,7 @@ padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding +0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz): 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): 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.

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vtable_field_offset.bin // Binary file: tests/invalid_vtable_field_offset.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -43,7 +43,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -62,20 +62,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -92,7 +92,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -102,19 +102,19 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding +0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -123,17 +123,17 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding +0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -157,9 +157,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -205,14 +205,14 @@ padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding +0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars): vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding: padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding +0x01E0 | 00 00 | uint8_t[2] | .. | padding
@@ -225,9 +225,9 @@ vtable (AnnotatedBinary.Bar):
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable +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) +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) +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) +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 +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
@@ -237,7 +237,7 @@ vtable (AnnotatedBinary.Baz):
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding +0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -249,14 +249,14 @@ vtable (AnnotatedBinary.Bar):
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding +0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vtable_ref_table_size.bin // Binary file: tests/invalid_vtable_ref_table_size.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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) +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +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 +0x00AC | 05 00 00 00 61 6C 69 63 | uint8_t[500] | ....alic | padding
+0x00B4 | 65 00 00 00 08 00 13 00 | | e....... +0x00B4 | 65 00 00 00 08 00 13 00 | | e.......
+0x00BC | 08 00 04 00 08 00 00 00 | | ........ +0x00BC | 08 00 04 00 08 00 00 00 | | ........
@@ -154,7 +154,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -164,19 +164,19 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding +0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -185,17 +185,17 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding +0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -219,9 +219,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -267,14 +267,14 @@ padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding +0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars): vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding: padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding +0x01E0 | 00 00 | uint8_t[2] | .. | padding
@@ -287,9 +287,9 @@ vtable (AnnotatedBinary.Bar):
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable +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) +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) +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) +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 +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
@@ -299,7 +299,7 @@ vtable (AnnotatedBinary.Baz):
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding +0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -311,14 +311,14 @@ vtable (AnnotatedBinary.Bar):
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding +0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -343,9 +343,9 @@ vtable (AnnotatedBinary.Bar):
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable +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) +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) +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) +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding +0x0290 | 00 00 | uint8_t[2] | .. | padding
@@ -355,6 +355,6 @@ vtable (AnnotatedBinary.Baz):
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding +0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vtable_ref_table_size_short.bin // Binary file: tests/invalid_vtable_ref_table_size_short.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:
@@ -42,7 +42,7 @@ vtable (AnnotatedBinary.Foo):
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo): root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding +0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
@@ -50,7 +50,7 @@ root_table (AnnotatedBinary.Foo):
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_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) +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) +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) +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) +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) +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
@@ -61,20 +61,20 @@ root_table (AnnotatedBinary.Foo):
+0x0071 | 02 | uint8_t | 0x02 (2) | 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) +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding +0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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`) +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`) +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) +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie): string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
@@ -91,7 +91,7 @@ vtable (AnnotatedBinary.Bar):
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable +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) +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) +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
@@ -101,19 +101,19 @@ union (AnnotatedBinary.Tolerance.measurement):
vector (AnnotatedBinary.Foo.foobars): vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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`) +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`) +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`) +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding +0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -122,17 +122,17 @@ vtable (AnnotatedBinary.Baz):
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz): 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): table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding +0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -156,9 +156,9 @@ padding:
vector (AnnotatedBinary.Foo.names): vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) +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] +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] +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] +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names): string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
@@ -204,14 +204,14 @@ padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding +0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars): vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding: padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding +0x01E0 | 00 00 | uint8_t[2] | .. | padding
@@ -224,9 +224,9 @@ vtable (AnnotatedBinary.Bar):
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable +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) +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) +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) +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 +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
@@ -236,7 +236,7 @@ vtable (AnnotatedBinary.Baz):
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding +0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
@@ -248,14 +248,14 @@ vtable (AnnotatedBinary.Bar):
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable +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) +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) +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) +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 +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding +0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -280,9 +280,9 @@ vtable (AnnotatedBinary.Bar):
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar): table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable +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) +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) +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) +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding +0x0290 | 00 00 | uint8_t[2] | .. | padding
@@ -292,6 +292,6 @@ vtable (AnnotatedBinary.Baz):
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz): table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding +0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vtable_size.bin // Binary file: tests/invalid_vtable_size.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:

View File

@@ -4,7 +4,7 @@
// Binary file: tests/invalid_vtable_size_short.bin // Binary file: tests/invalid_vtable_size_short.bin
header: header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` +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 +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding: padding:

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
// Binary file: monsterdata_test.mon // Binary file: monsterdata_test.mon
header: 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 +0x0004 | 4D 4F 4E 53 | char[4] | MONS | File Identifier
padding: padding:
@@ -67,7 +67,7 @@ vtable (MyGame.Example.Monster):
+0x0076 | 6C 00 | VOffset16 | 0x006C (108) | offset to field `native_inline` (id: 51) +0x0076 | 6C 00 | VOffset16 | 0x006C (108) | offset to field `native_inline` (id: 51)
root_table (MyGame.Example.Monster): 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) +0x007C | 01 | UType8 | 0x01 (1) | table field `test_type` (UType)
+0x007D | 01 | uint8_t | 0x01 (1) | table field `testbool` (Bool) +0x007D | 01 | uint8_t | 0x01 (1) | table field `testbool` (Bool)
+0x007E | 50 00 | int16_t | 0x0050 (80) | table field `hp` (Short) +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 +0x009D | 00 | uint8_t[1] | . | padding
+0x009E | 00 00 | uint8_t[2] | .. | padding +0x009E | 00 00 | uint8_t[2] | .. | padding
+0x00A0 | 00 00 00 00 | uint8_t[4] | .... | 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) +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) +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`) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +0x00E6 | 02 | uint8_t | 0x02 (2) | struct field `native_inline.b` of 'MyGame.Example.Test' (Byte)
+0x00E7 | 00 | uint8_t[1] | . | padding +0x00E7 | 00 | uint8_t[1] | . | padding
@@ -110,8 +110,8 @@ root_table (MyGame.Example.Monster):
vector (MyGame.Example.Monster.scalar_key_sorted_tables): vector (MyGame.Example.Monster.scalar_key_sorted_tables):
+0x010C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x0114 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x013C | offset to table[1]
padding: padding:
+0x0118 | 00 00 | uint8_t[2] | .. | 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) +0x011E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 0)
table (MyGame.Example.Stat): table (MyGame.Example.Stat):
+0x0120 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x011A | offset to vtable +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) +0x0124 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0128 | offset to field `id` (string)
string (MyGame.Example.Stat.id): string (MyGame.Example.Stat.id):
+0x0128 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string +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) +0x013A | 06 00 | VOffset16 | 0x0006 (6) | offset to field `count` (id: 2)
table (MyGame.Example.Stat): 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 +0x0140 | 00 00 | uint8_t[2] | .. | padding
+0x0142 | 01 00 | uint16_t | 0x0001 (1) | table field `count` (UShort) +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) +0x0148 | 0A 00 00 00 00 00 00 00 | int64_t | 0x000000000000000A (10) | table field `val` (Long)
string (MyGame.Example.Stat.id): string (MyGame.Example.Stat.id):
@@ -165,8 +165,8 @@ vector (MyGame.Example.Monster.testarrayofbools):
+0x017A | 01 | uint8_t | 0x01 (1) | value[2] +0x017A | 01 | uint8_t | 0x01 (1) | value[2]
table (MyGame.Example.Monster): table (MyGame.Example.Monster):
+0x017C | B0 FF FF FF | SOffset32 | 0xFFFFFFB0 (-80) Loc: +0x01CC | offset to vtable +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) +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0184 | offset to field `name` (string)
string (MyGame.Example.Monster.name): string (MyGame.Example.Monster.name):
+0x0184 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string +0x0184 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string
@@ -178,8 +178,8 @@ padding:
vector (MyGame.Example.Monster.testarrayofstring): vector (MyGame.Example.Monster.testarrayofstring):
+0x0190 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) +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] +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] +0x0198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x019C | offset to string[1]
string (MyGame.Example.Monster.testarrayofstring): string (MyGame.Example.Monster.testarrayofstring):
+0x019C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string +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) +0x01D6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 3)
table (MyGame.Example.Monster): table (MyGame.Example.Monster):
+0x01D8 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x01CC | offset to vtable +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) +0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01E0 | offset to field `name` (string)
string (MyGame.Example.Monster.name): string (MyGame.Example.Monster.name):
+0x01E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string +0x01E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string