mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-29 09:12:02 +00:00
fuzzed binary annotator (#7188)
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
#include "annotated_binary_text_gen.h"
|
#include "annotated_binary_text_gen.h"
|
||||||
|
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
#include "flatbuffers/util.h"
|
#include "flatbuffers/util.h"
|
||||||
|
|
||||||
namespace flatbuffers {
|
namespace flatbuffers {
|
||||||
@@ -37,6 +40,16 @@ static bool IsOffset(const BinaryRegionType type) {
|
|||||||
return type == BinaryRegionType::UOffset || type == BinaryRegionType::SOffset;
|
return type == BinaryRegionType::UOffset || type == BinaryRegionType::SOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T> std::string ToString(T value) {
|
||||||
|
if (std::is_floating_point<T>::value) {
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << value;
|
||||||
|
return ss.str();
|
||||||
|
} else {
|
||||||
|
return std::to_string(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
std::string ToValueString(const BinaryRegion ®ion, const uint8_t *binary) {
|
std::string ToValueString(const BinaryRegion ®ion, const uint8_t *binary) {
|
||||||
std::string s;
|
std::string s;
|
||||||
@@ -47,7 +60,7 @@ std::string ToValueString(const BinaryRegion ®ion, const uint8_t *binary) {
|
|||||||
s += ToHex(binary[start_index - i]);
|
s += ToHex(binary[start_index - i]);
|
||||||
}
|
}
|
||||||
s += " (";
|
s += " (";
|
||||||
s += std::to_string(val);
|
s += ToString(val);
|
||||||
s += ")";
|
s += ")";
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,7 +102,6 @@ std::map<uint64_t, BinarySection> BinaryAnnotator::Annotate() {
|
|||||||
|
|
||||||
// Make sure we start with a clean slate.
|
// Make sure we start with a clean slate.
|
||||||
vtables_.clear();
|
vtables_.clear();
|
||||||
strings_.clear();
|
|
||||||
sections_.clear();
|
sections_.clear();
|
||||||
|
|
||||||
// First parse the header region which always start at offset 0.
|
// First parse the header region which always start at offset 0.
|
||||||
@@ -179,6 +178,8 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset,
|
|||||||
auto it = vtables_.find(vtable_offset);
|
auto it = vtables_.find(vtable_offset);
|
||||||
if (it != vtables_.end()) { return; }
|
if (it != vtables_.end()) { return; }
|
||||||
|
|
||||||
|
if (ContainsSection(vtable_offset)) { return; }
|
||||||
|
|
||||||
const auto vtable_length = ReadScalar<uint16_t>(vtable_offset);
|
const auto vtable_length = ReadScalar<uint16_t>(vtable_offset);
|
||||||
if (!vtable_length.has_value()) {
|
if (!vtable_length.has_value()) {
|
||||||
const uint64_t remaining = RemainingBytes(vtable_offset);
|
const uint64_t remaining = RemainingBytes(vtable_offset);
|
||||||
@@ -400,6 +401,8 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset,
|
|||||||
void BinaryAnnotator::BuildTable(const uint64_t table_offset,
|
void BinaryAnnotator::BuildTable(const uint64_t table_offset,
|
||||||
const BinarySectionType type,
|
const BinarySectionType type,
|
||||||
const reflection::Object *const table) {
|
const reflection::Object *const table) {
|
||||||
|
if (ContainsSection(table_offset)) { return; }
|
||||||
|
|
||||||
const auto vtable_soffset = ReadScalar<int32_t>(table_offset);
|
const auto vtable_soffset = ReadScalar<int32_t>(table_offset);
|
||||||
|
|
||||||
if (!vtable_soffset.has_value()) {
|
if (!vtable_soffset.has_value()) {
|
||||||
@@ -699,7 +702,6 @@ uint64_t BinaryAnnotator::BuildStruct(const uint64_t struct_offset,
|
|||||||
std::vector<BinaryRegion> ®ions,
|
std::vector<BinaryRegion> ®ions,
|
||||||
const reflection::Object *const object) {
|
const reflection::Object *const object) {
|
||||||
if (!object->is_struct()) { return struct_offset; }
|
if (!object->is_struct()) { return struct_offset; }
|
||||||
|
|
||||||
uint64_t offset = struct_offset;
|
uint64_t offset = struct_offset;
|
||||||
|
|
||||||
// Loop over all the fields in increasing order
|
// Loop over all the fields in increasing order
|
||||||
@@ -730,7 +732,6 @@ uint64_t BinaryAnnotator::BuildStruct(const uint64_t struct_offset,
|
|||||||
|
|
||||||
regions.push_back(
|
regions.push_back(
|
||||||
MakeBinaryRegion(offset, type_size, region_type, 0, 0, name));
|
MakeBinaryRegion(offset, type_size, region_type, 0, 0, name));
|
||||||
|
|
||||||
offset += type_size;
|
offset += type_size;
|
||||||
} else if (field->type()->base_type() == reflection::BaseType::Obj) {
|
} else if (field->type()->base_type() == reflection::BaseType::Obj) {
|
||||||
// Structs are stored inline, even when nested.
|
// Structs are stored inline, even when nested.
|
||||||
@@ -789,7 +790,7 @@ void BinaryAnnotator::BuildString(const uint64_t string_offset,
|
|||||||
const reflection::Field *const field) {
|
const reflection::Field *const field) {
|
||||||
// Check if we have already generated this string section, and this is a
|
// Check if we have already generated this string section, and this is a
|
||||||
// shared string instance.
|
// shared string instance.
|
||||||
if (strings_.find(string_offset) != strings_.end()) { return; }
|
if (ContainsSection(string_offset)) { return; }
|
||||||
|
|
||||||
std::vector<BinaryRegion> regions;
|
std::vector<BinaryRegion> regions;
|
||||||
const auto string_length = ReadScalar<uint32_t>(string_offset);
|
const auto string_length = ReadScalar<uint32_t>(string_offset);
|
||||||
@@ -831,9 +832,6 @@ void BinaryAnnotator::BuildString(const uint64_t string_offset,
|
|||||||
MakeBinarySection(std::string(table->name()->c_str()) + "." +
|
MakeBinarySection(std::string(table->name()->c_str()) + "." +
|
||||||
field->name()->c_str(),
|
field->name()->c_str(),
|
||||||
BinarySectionType::String, std::move(regions)));
|
BinarySectionType::String, std::move(regions)));
|
||||||
|
|
||||||
// Insert into the strings set to find possible instances of shared strings.
|
|
||||||
strings_.insert(string_offset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
|
void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
|
||||||
@@ -841,7 +839,7 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
|
|||||||
const reflection::Field *const field,
|
const reflection::Field *const field,
|
||||||
const uint64_t parent_table_offset,
|
const uint64_t parent_table_offset,
|
||||||
const VTable &vtable) {
|
const VTable &vtable) {
|
||||||
std::vector<BinaryRegion> regions;
|
if (ContainsSection(vector_offset)) { return; }
|
||||||
|
|
||||||
const auto vector_length = ReadScalar<uint32_t>(vector_offset);
|
const auto vector_length = ReadScalar<uint32_t>(vector_offset);
|
||||||
if (!vector_length.has_value()) {
|
if (!vector_length.has_value()) {
|
||||||
@@ -859,6 +857,28 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate there are enough bytes left in the binary to process all the
|
||||||
|
// items.
|
||||||
|
const uint64_t last_item_offset =
|
||||||
|
vector_offset + sizeof(uint32_t) +
|
||||||
|
vector_length.value() * GetElementSize(field);
|
||||||
|
|
||||||
|
if (!IsValidOffset(last_item_offset - 1)) {
|
||||||
|
AddSection(
|
||||||
|
vector_offset,
|
||||||
|
MakeSingleRegionBinarySection(
|
||||||
|
std::string(table->name()->c_str()) + "." + field->name()->c_str(),
|
||||||
|
BinarySectionType::Vector,
|
||||||
|
MakeBinaryRegion(vector_offset, sizeof(uint32_t),
|
||||||
|
BinaryRegionType::Uint32, 0, 0,
|
||||||
|
"ERROR: length of vector (# items). Invalid "
|
||||||
|
"length, points outside the binary.")));
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<BinaryRegion> regions;
|
||||||
|
|
||||||
regions.push_back(MakeBinaryRegion(
|
regions.push_back(MakeBinaryRegion(
|
||||||
vector_offset, sizeof(uint32_t), BinaryRegionType::Uint32, 0, 0,
|
vector_offset, sizeof(uint32_t), BinaryRegionType::Uint32, 0, 0,
|
||||||
std::string("length of vector (# items)")));
|
std::string("length of vector (# items)")));
|
||||||
@@ -874,7 +894,9 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset,
|
|||||||
// Vector of structs
|
// Vector of structs
|
||||||
for (size_t i = 0; i < vector_length.value(); ++i) {
|
for (size_t i = 0; i < vector_length.value(); ++i) {
|
||||||
// Structs are inline to the vector.
|
// Structs are inline to the vector.
|
||||||
offset = BuildStruct(offset, regions, object);
|
const uint64_t next_offset = BuildStruct(offset, regions, object);
|
||||||
|
if (next_offset == offset) { break; }
|
||||||
|
offset = next_offset;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Vector of objects
|
// Vector of objects
|
||||||
@@ -1115,6 +1137,8 @@ std::string BinaryAnnotator::BuildUnion(const uint64_t union_offset,
|
|||||||
|
|
||||||
const reflection::EnumVal *enum_val = next_enum->values()->Get(realized_type);
|
const reflection::EnumVal *enum_val = next_enum->values()->Get(realized_type);
|
||||||
|
|
||||||
|
if (ContainsSection(union_offset)) { return enum_val->name()->c_str(); }
|
||||||
|
|
||||||
const reflection::Type *union_type = enum_val->union_type();
|
const reflection::Type *union_type = enum_val->union_type();
|
||||||
|
|
||||||
if (union_type->base_type() == reflection::BaseType::Obj) {
|
if (union_type->base_type() == reflection::BaseType::Obj) {
|
||||||
@@ -1155,6 +1179,10 @@ void BinaryAnnotator::FixMissingRegions() {
|
|||||||
BinaryRegion ®ion = section.regions[i];
|
BinaryRegion ®ion = section.regions[i];
|
||||||
|
|
||||||
const uint64_t next_offset = region.offset;
|
const uint64_t next_offset = region.offset;
|
||||||
|
if (!IsValidOffset(next_offset)) {
|
||||||
|
// TODO(dbaileychess): figure out how we get into this situation.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (offset < next_offset) {
|
if (offset < next_offset) {
|
||||||
const uint64_t padding_bytes = next_offset - offset;
|
const uint64_t padding_bytes = next_offset - offset;
|
||||||
|
|||||||
@@ -277,6 +277,24 @@ class BinaryAnnotator {
|
|||||||
return value < enum_def->values()->size();
|
return value < enum_def->values()->size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t GetElementSize(const reflection::Field *const field) {
|
||||||
|
if (IsScalar(field->type()->element())) {
|
||||||
|
return GetTypeSize(field->type()->element());
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field->type()->element()) {
|
||||||
|
case reflection::BaseType::Obj: {
|
||||||
|
auto obj = schema_->objects()->Get(field->type()->index());
|
||||||
|
return obj->is_struct() ? obj->bytesize() : sizeof(uint32_t);
|
||||||
|
}
|
||||||
|
default: return sizeof(uint32_t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ContainsSection(const uint64_t offset) {
|
||||||
|
return sections_.find(offset) != sections_.end();
|
||||||
|
}
|
||||||
|
|
||||||
// The schema for the binary file
|
// The schema for the binary file
|
||||||
const uint8_t *bfbs_;
|
const uint8_t *bfbs_;
|
||||||
const uint64_t bfbs_length_;
|
const uint64_t bfbs_length_;
|
||||||
@@ -289,9 +307,6 @@ class BinaryAnnotator {
|
|||||||
// 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, VTable> vtables_;
|
||||||
|
|
||||||
// A set of binary offset to string sections, to dedupe shared strings.
|
|
||||||
std::set<uint64_t> strings_;
|
|
||||||
|
|
||||||
// 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_;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -107,9 +107,9 @@ vector (AnnotatedBinary.Foo.foobars):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -126,9 +126,9 @@ table (AnnotatedBinary.Baz):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -144,12 +144,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -225,9 +225,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
@@ -249,9 +249,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -281,9 +281,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.312500) | 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 (123456.789000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
|
|||||||
Binary file not shown.
@@ -90,8 +90,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -105,9 +105,9 @@ vector (AnnotatedBinary.Foo.foobars):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -124,9 +124,9 @@ table (AnnotatedBinary.Baz):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -142,12 +142,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -223,9 +223,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
@@ -247,9 +247,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -279,9 +279,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.312500) | 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 (123456.789000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -107,9 +107,9 @@ vector (AnnotatedBinary.Foo.foobars):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -126,9 +126,9 @@ table (AnnotatedBinary.Baz):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -144,12 +144,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -221,9 +221,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
@@ -245,9 +245,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -277,9 +277,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.312500) | 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 (123456.789000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -138,12 +138,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -183,9 +183,8 @@ string (AnnotatedBinary.Foo.bob):
|
|||||||
+0x01B3 | 00 | char | 0x00 (0) | string terminator
|
+0x01B3 | 00 | char | 0x00 (0) | string terminator
|
||||||
|
|
||||||
vector (AnnotatedBinary.Foo.accounts):
|
vector (AnnotatedBinary.Foo.accounts):
|
||||||
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
|
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | ERROR: length of vector (# items). Invalid length, points outside the binary.
|
||||||
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
|
|
||||||
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
|
unknown (no known references):
|
||||||
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
|
+0x01B8 | 09 00 08 00 07 00 01 00 | ?uint8_t[9] | ........ | WARN: nothing refers to this section.
|
||||||
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
|
+0x01C0 | 02 | | .
|
||||||
+0x01C0 | 02 | ?uint8_t[1] | . | ERROR: value[4]. Incomplete binary, expected to read 2 bytes here
|
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -138,17 +138,18 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | 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) | ERROR: length of vector (# items). Invalid length, points outside the binary.
|
||||||
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | ERROR: offset to string[0]. Invalid offset, points to outside the binary.
|
|
||||||
+0x0174 | 14 00 | ?uint8_t[2] | .. | ERROR: offset to string[1]. Incomplete binary, expected to read 4 bytes here
|
unknown (no known references):
|
||||||
|
+0x0170 | 20 00 00 00 14 00 | ?uint8_t[6] | ..... | could be a corrupted padding region (non zero) due to the length < 8 bytes.
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -137,8 +137,10 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
|
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
|
||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Invalid length, points outside the binary.
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
unknown (no known references):
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | ?uint8_t[28] | 33333.E@ | WARN: nothing refers to this section.
|
||||||
+0x0150 | 9F 77 63 41 | ?uint8_t[4] | .wcA | ERROR: struct field `AnnotatedBinary.Location.longitude` (Double). Expected to read 8 bytes.
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | | ~W..[.S.
|
||||||
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | | ... ..B@
|
||||||
|
+0x0150 | 9F 77 63 41 | | .wcA
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -138,12 +138,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -204,6 +204,7 @@ unknown (no known references):
|
|||||||
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | could be a corrupted padding region (non zero) due to the length < 8 bytes.
|
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | could be a corrupted padding region (non zero) due to the length < 8 bytes.
|
||||||
|
|
||||||
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) | ERROR: length of vector (# items). Invalid length, points outside the binary.
|
||||||
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | ERROR: offset to table[0]. Invalid offset, points to outside the binary.
|
|
||||||
+0x01DC | 10 00 | ?uint8_t[2] | .. | ERROR: offset to table[1]. Incomplete binary, expected to read 4 bytes here
|
unknown (no known references):
|
||||||
|
+0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | could be a corrupted padding region (non zero) due to the length < 8 bytes.
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -107,9 +107,9 @@ vector (AnnotatedBinary.Foo.foobars):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -122,9 +122,9 @@ unknown (no known references):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -140,12 +140,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -221,9 +221,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
@@ -245,9 +245,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -277,9 +277,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.312500) | 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 (123456.789000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -138,12 +138,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -204,6 +204,7 @@ unknown (no known references):
|
|||||||
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | could be a corrupted padding region (non zero) due to the length < 8 bytes.
|
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | could be a corrupted padding region (non zero) due to the length < 8 bytes.
|
||||||
|
|
||||||
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) | ERROR: length of vector (# items). Invalid length, points outside the binary.
|
||||||
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | ERROR: offset to table[0]. Invalid offset, points to outside the binary.
|
|
||||||
+0x01DC | 10 00 | ?uint8_t[2] | .. | ERROR: offset to table[1]. Incomplete binary, expected to read 4 bytes here
|
unknown (no known references):
|
||||||
|
+0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | could be a corrupted padding region (non zero) due to the length < 8 bytes.
|
||||||
|
|||||||
@@ -93,8 +93,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -108,9 +108,9 @@ vector (AnnotatedBinary.Foo.foobars):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -127,9 +127,9 @@ table (AnnotatedBinary.Baz):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -145,12 +145,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -226,9 +226,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
@@ -250,9 +250,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
|
|||||||
@@ -155,8 +155,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -170,9 +170,9 @@ vector (AnnotatedBinary.Foo.foobars):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -189,9 +189,9 @@ table (AnnotatedBinary.Baz):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -207,12 +207,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -288,9 +288,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
@@ -312,9 +312,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -344,9 +344,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.312500) | 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 (123456.789000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
union (AnnotatedBinary.Tolerance.measurement):
|
union (AnnotatedBinary.Tolerance.measurement):
|
||||||
@@ -107,9 +107,9 @@ vector (AnnotatedBinary.Foo.foobars):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -126,9 +126,9 @@ table (AnnotatedBinary.Baz):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -144,12 +144,12 @@ vector (AnnotatedBinary.Foo.foobars_type):
|
|||||||
|
|
||||||
vector (AnnotatedBinary.Foo.points_of_interest):
|
vector (AnnotatedBinary.Foo.points_of_interest):
|
||||||
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
|
||||||
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275000) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.114990) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084061) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double)
|
||||||
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.346450) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double)
|
||||||
|
|
||||||
padding:
|
padding:
|
||||||
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
|
||||||
@@ -225,9 +225,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
@@ -249,9 +249,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.000000) | 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.000000) | 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):
|
||||||
@@ -281,9 +281,9 @@ vtable (AnnotatedBinary.Bar):
|
|||||||
|
|
||||||
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.312500) | 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 (123456.789000) | 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
|
||||||
|
|
||||||
vtable (AnnotatedBinary.Baz):
|
vtable (AnnotatedBinary.Baz):
|
||||||
|
|||||||
18
tests/fuzzer/.gitignore
vendored
Normal file
18
tests/fuzzer/.gitignore
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# The generated fuzzers
|
||||||
|
*_fuzzer
|
||||||
|
|
||||||
|
# Findings from the fuzzers
|
||||||
|
oom-*
|
||||||
|
slow-unit-*
|
||||||
|
crash-*
|
||||||
|
|
||||||
|
# Individual fuzzer logs if job=N
|
||||||
|
fuzz-*.log
|
||||||
|
|
||||||
|
.clangd/
|
||||||
|
|
||||||
|
# These are copied from tests/annotated_binary/ and should use the latest ones.
|
||||||
|
annotated_binary.bfbs
|
||||||
|
annotated_binary.bin
|
||||||
|
|
||||||
|
monster_test.bfbs
|
||||||
@@ -112,12 +112,15 @@ set(FlatBuffers_Library_SRCS
|
|||||||
${FLATBUFFERS_DIR}/src/idl_parser.cpp
|
${FLATBUFFERS_DIR}/src/idl_parser.cpp
|
||||||
${FLATBUFFERS_DIR}/src/idl_gen_text.cpp
|
${FLATBUFFERS_DIR}/src/idl_gen_text.cpp
|
||||||
${FLATBUFFERS_DIR}/src/reflection.cpp
|
${FLATBUFFERS_DIR}/src/reflection.cpp
|
||||||
|
${FLATBUFFERS_DIR}/src/binary_annotator.h
|
||||||
|
${FLATBUFFERS_DIR}/src/binary_annotator.cpp
|
||||||
${FLATBUFFERS_DIR}/src/util.cpp
|
${FLATBUFFERS_DIR}/src/util.cpp
|
||||||
${FLATBUFFERS_DIR}/tests/test_assert.cpp
|
${FLATBUFFERS_DIR}/tests/test_assert.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
include_directories(${FLATBUFFERS_DIR}/include)
|
include_directories(${FLATBUFFERS_DIR}/include)
|
||||||
include_directories(${FLATBUFFERS_DIR}/tests)
|
include_directories(${FLATBUFFERS_DIR}/tests)
|
||||||
|
include_directories(${FLATBUFFERS_DIR}/src)
|
||||||
|
|
||||||
add_library(flatbuffers_fuzzed STATIC ${FlatBuffers_Library_SRCS})
|
add_library(flatbuffers_fuzzed STATIC ${FlatBuffers_Library_SRCS})
|
||||||
# Use PUBLIC to force 'fuzzer_config' for all dependent targets
|
# Use PUBLIC to force 'fuzzer_config' for all dependent targets
|
||||||
@@ -157,6 +160,19 @@ add_custom_command(
|
|||||||
${CMAKE_SOURCE_DIR}/../monster_test.bfbs
|
${CMAKE_SOURCE_DIR}/../monster_test.bfbs
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/monster_test.bfbs)
|
${CMAKE_CURRENT_BINARY_DIR}/monster_test.bfbs)
|
||||||
|
|
||||||
|
add_executable(annotator_fuzzer flatbuffers_annotator_fuzzer.cc)
|
||||||
|
target_link_libraries(annotator_fuzzer PRIVATE flatbuffers_fuzzed)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET annotator_fuzzer PRE_BUILD
|
||||||
|
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${CMAKE_SOURCE_DIR}/../annotated_binary/annotated_binary.bfbs
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/annotated_binary.bfbs
|
||||||
|
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${CMAKE_SOURCE_DIR}/../annotated_binary/annotated_binary.bin
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/seed_annotator/annotated_binary.bin
|
||||||
|
)
|
||||||
|
|
||||||
# Build debugger for weird cases found with fuzzer.
|
# Build debugger for weird cases found with fuzzer.
|
||||||
if(BUILD_DEBUGGER)
|
if(BUILD_DEBUGGER)
|
||||||
|
|||||||
53
tests/fuzzer/flatbuffers_annotator_fuzzer.cc
Normal file
53
tests/fuzzer/flatbuffers_annotator_fuzzer.cc
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
#include <filesystem>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "binary_annotator.h"
|
||||||
|
#include "test_init.h"
|
||||||
|
|
||||||
|
static std::filesystem::path exe_path_;
|
||||||
|
static const uint8_t *schema_bfbs_;
|
||||||
|
static size_t schema_bfbs_length_;
|
||||||
|
|
||||||
|
bool TestFileExists(std::filesystem::path file_path) {
|
||||||
|
if (file_path.has_filename() && std::filesystem::exists(file_path))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
TEST_OUTPUT_LINE("@DEBUG: file '%s' not found", file_path.string().c_str());
|
||||||
|
for (const auto &entry :
|
||||||
|
std::filesystem::directory_iterator(file_path.parent_path())) {
|
||||||
|
TEST_OUTPUT_LINE("@DEBUG: parent path entry: '%s'",
|
||||||
|
entry.path().string().c_str());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string LoadBinarySchema(const char *file_name) {
|
||||||
|
const auto file_path = exe_path_.parent_path() / file_name;
|
||||||
|
TEST_EQ(true, TestFileExists(file_path));
|
||||||
|
std::string schemafile;
|
||||||
|
TEST_EQ(true,
|
||||||
|
flatbuffers::LoadFile(file_path.string().c_str(), true, &schemafile));
|
||||||
|
|
||||||
|
flatbuffers::Verifier verifier(
|
||||||
|
reinterpret_cast<const uint8_t *>(schemafile.c_str()), schemafile.size());
|
||||||
|
TEST_EQ(true, reflection::VerifySchemaBuffer(verifier));
|
||||||
|
return schemafile;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerInitialize(int *, char ***argv) {
|
||||||
|
exe_path_ = (*argv)[0];
|
||||||
|
static const std::string schema_file =
|
||||||
|
LoadBinarySchema("annotated_binary.bfbs");
|
||||||
|
schema_bfbs_ = reinterpret_cast<const uint8_t *>(schema_file.c_str());
|
||||||
|
schema_bfbs_length_ = schema_file.size();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||||
|
flatbuffers::BinaryAnnotator annotator(schema_bfbs_, schema_bfbs_length_,
|
||||||
|
data, size);
|
||||||
|
|
||||||
|
annotator.Annotate();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user