Merge commit '0f6aab9da6fe982218a01f4a5b896e65fcced437' as 'third_party/flatbuffers'

This commit is contained in:
Siarhei Fedartsou
2024-06-22 13:33:34 +02:00
1814 changed files with 326902 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
# Annotated Flatbuffer Binary
This directory demonstrates the ability of flatc to annotate binary flatbuffers
with helpful annotations. The resulting annotated flatbuffer binary (afb)
contains all the binary data with line-by-line annotations.
## Usage
Given a `schema` in either plain-text (.fbs) or already compiled to a binary
schema (.bfbs) and `binary` file(s) that was created by the `schema`.
```sh
flatc --annotate {schema_file} -- {binary_file}...
```
### Example
The following command should produce `annotated_binary.afb` in this directory:
```sh
cd tests\annotated_binary
..\..\flatc --annotate annotated_binary.fbs -- annotated_binary.bin
```
The `annotated_binary.bin` is the flatbufer binary of the data contained within
`annotated_binary.json`, which was made by the following command:
```sh
..\..\flatc -b annotated_binary.fbs annotated_binary.json
```
## Text Format
Currently there is a built-in text-based format for outputting the annotations.
The `annotated_binary.afb` is an example of the text format of a binary
`annotated_binary.bin` and the `annotated_binary.fbs` (or
`annotated_binary.bfbs`) schema.
The file is ordered in increasing the offsets from the beginning of the binary.
The offset is the 1st column, expressed in hexadecimal format (e.g. `+0x003c`).
### Binary Sections
Binary sections are comprised of contigious [binary regions](#binary-regions)
that are logically grouped together. For example, a binary section may be a
single instance of a flatbuffer `Table` or its `vtable`. The sections may be
labelled with the name of the associated type, as defined in the input schema.
Example of a `vtable` Binary Section that is associated with the user-defined
`AnnotateBinary.Bar` table.
```
vtable (AnnotatedBinary.Bar):
+0x00A0 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00A2 | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00A4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00A6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
```
### Binary Regions
Binary regions are contigious bytes regions that are grouped together to form
some sort of value, e.g. a `scalar` or an array of scalars. A binary region may
be split up over multiple text lines, if the size of the region is large.
Looking at an example binary region:
```
vtable (AnnotatedBinary.Bar):
+0x00A0 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
```
The first column (`+0x00A0`) is the offset to this region from the beginning of
the buffer.
The second column are the raw bytes (hexadecimal) that make up this
region. These are expressed in the little-endian format that flatbuffers uses
for the wire format.
The third column is the type to interpret the bytes as. Some types are special
to flatbuffer internals (e.g. `SOffet32`, `Offset32`, and `VOffset16`) which are
used by flatbuffers to point to various offsetes. The other types are specified
as C++-like types which are the standard fix-width scalars. For the above
example, the type is `uint16_t` which is a 16-bit unsigned integer type.
The fourth column shows the raw bytes as a compacted, big-endian value. The raw
bytes are duplicated in this fashion since it is more intutive to read the data
in the big-endian format (e.g., `0x0008`). This value is followed by the decimal
representation of the value (e.g., `(8)`). (For strings, the raw string value
is shown instead).
The fifth column is a textual comment on what the value is. As much metadata as
known is provided.
#### Offsets
If the type in the 3rd column is of an absolute offset (`SOffet32` or
`Offset32`), the fourth column also shows an `Loc: +0x025A` value which shows
where in the binary this region is pointing to. These values are absolute from
the beginning of the file, their calculation from the raw value in the 4th
column depends on the context.
@@ -0,0 +1,297 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: annotated_binary.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -0,0 +1,92 @@
namespace AnnotatedBinary;
enum Food : byte {
None = 0,
Apple = 1,
Banana = 2,
Kiwi = 3,
}
table Baz {
meal:Food = Banana;
}
table Bar {
a:double = 3.14;
b:float = 1.68;
c:Baz;
}
union BarBaz {
Bar, Baz
}
union Measurement {
Tolerance, Dimension
}
struct Tolerance {
width:uint8;
}
union Any {
Bar, Tolerance
}
struct Dimension {
values:[int:3];
tolerances:[Tolerance:3];
}
struct Building {
floors:int;
doors:int;
windows:int;
dimensions:Dimension;
}
struct Location {
latitude:double;
longitude:double;
}
table Foo {
counter:int;
healthy:bool;
level:long = 99;
meal:Food = Apple;
bar:Bar;
home:Building;
name:string;
// Vector of tables
bars:[Bar];
// Union of tables
bar_baz:BarBaz;
// Vector of Scalars
accounts:[uint16];
bob:string;
alice:string;
// Optional Scalars
maybe_i32: int32 = null;
default_i32: int32 = 42;
just_i32: int32;
// Vector of strings
names:[string];
// Vector of structs
points_of_interest:[Location];
// Vector of unions
foobars:[BarBaz];
// Union of structs
measurement:Measurement;
// Union of struct/table
anything:Any;
// Default floating point
temperature:float=98.6;
// Not present object
teetotaler:Bar;
charlie:string;
}
file_identifier "ANNO";
root_type Foo;
@@ -0,0 +1,124 @@
{
"counter": 1234,
"healthy": true,
"meal": "Banana",
"bar": {
"a": 123456.789,
"b": 987654.321,
"c": {
"meal": "Apple"
}
},
"home": {
"floors": 1,
"doors": 2,
"windows": 12,
"dimensions": {
"values": [
10,
12,
20
],
"tolerances": [
{
"width": 1
},
{
"width": 2
},
{
"width": 3
}
]
}
},
"name": "This is a long string to show how it breaks up.",
"bars": [
{
"a": 123,
"b": 456,
"c": {
"meal": "Apple"
}
},
{
"a": 987,
"b": 654,
"c": {
"meal": "Kiwi"
}
}
],
"bar_baz_type": "Baz",
"bar_baz": {
"meal": "Kiwi"
},
"accounts": [
9,
8,
7,
1,
2,
3,
6,
5,
4,
],
// Use the same string to show shared string support
"bob": "charlie",
"alice": "charlie",
"just_i32": 13,
"names": [
"alice",
"bob",
"charlie"
],
"points_of_interest": [
{
"latitude": 43.275,
"longitude": -78.114990
},
{
"latitude": 37.422001,
"longitude": -122.084061
},
{
"latitude": -54.420792,
"longitude": 3.346450
}
],
"foobars_type": [
"Bar",
"Baz",
"Bar"
],
"foobars" : [
{
"a": 123,
"b": 456,
"c": {
"meal": "Apple"
}
},
{
"meal": "Banana"
},
{
"a": 987,
"b": 654,
"c": {
"meal": "Kiwi"
}
}
],
"measurement_type": "Tolerance",
"measurement": {
"width": 5
},
"anything_type": "Bar",
"anything": {
"a": 321,
"b": 654
},
"charlie": "alice"
}
@@ -0,0 +1,293 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary_old.fbs
// Binary file: annotated_binary.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | uint8_t | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | uint8_t | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | uint8_t | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar`
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values[0]` (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values[1]` (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values[2]` (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name`
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars`
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts`
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob`
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice`
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names`
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest`
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type`
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars`
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | ?uint8_t[4] | .... | Unknown field <possibly an offset? Check Loc: +0x000000AC>
unknown (no known references):
+0x00AC | 05 00 00 00 61 6C 69 63 | ?uint8_t[12] | ....alic | WARN: nothing refers to this. Check if any `Unkown Field`s point to this.
+0x00B4 | 65 00 00 00 | | e...
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+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)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321.000000) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+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)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c`
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987.000000) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456.000000) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c`
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123.000000) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | uint8_t | 0x01 (1) | value[0]
+0x0131 | 02 | uint8_t | 0x02 (2) | value[1]
+0x0132 | 01 | uint8_t | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.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)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422001) | 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)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.420792) | 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)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+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)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c`
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987.000000) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+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)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c`
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123.000000) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+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)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c`
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123456.789000) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -0,0 +1,94 @@
namespace AnnotatedBinary;
enum Food : byte {
None = 0,
Apple = 1,
Banana = 2,
Kiwi = 3,
}
table Baz {
meal:Food = Banana;
}
table Bar {
a:double = 3.14;
b:float = 1.68;
c:Baz;
}
union BarBaz {
Bar, Baz
}
union Measurement {
Tolerance, Dimension
}
struct Tolerance {
width:uint8;
}
union Any {
Bar, Tolerance
}
struct Dimension {
values:[int:3];
tolerances:[Tolerance:3];
}
struct Building {
floors:int;
doors:int;
windows:int;
dimensions:Dimension;
}
struct Location {
latitude:double;
longitude:double;
}
table Foo {
counter:int;
healthy:bool;
level:long = 99;
meal:Food = Apple;
bar:Bar;
home:Building;
name:string;
// Vector of tables
bars:[Bar];
// Union of tables
bar_baz:BarBaz;
// Vector of Scalars
accounts:[uint16];
bob:string;
alice:string;
// Optional Scalars
maybe_i32: int32 = null;
default_i32: int32 = 42;
just_i32: int32;
// Vector of strings
names:[string];
// Vector of structs
points_of_interest:[Location];
// Vector of unions
foobars:[BarBaz];
// Union of structs
measurement:Measurement;
// Union of struct/table
anything:Any;
// Default floating point
temperature:float=98.6;
// Not present object
teetotaler:Bar;
// NOTE THIS IS A PURPOSELY OLD VERSION OF annotated_binary.fbs TO TEST
// PROCESSING OF NEWER BINARIES THAN THE SCHEMA. DO NOT ADD TO THIS.
}
file_identifier "ANNO";
root_type Foo;
+76
View File
@@ -0,0 +1,76 @@
#!/usr/bin/env python3
#
# Copyright 2021 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import platform
import subprocess
from pathlib import Path
# Get the path where this script is located so we can invoke the script from
# any directory and have the paths work correctly.
script_path = Path(__file__).parent.resolve()
# Get the root path as an absolute path, so all derived paths are absolute.
root_path = script_path.parent.parent.absolute()
# Get the location of the flatc executable, reading from the first command line
# argument or defaulting to default names.
flatc_exe = Path(
("flatc" if not platform.system() == "Windows" else "flatc.exe")
)
# Find and assert flatc compiler is present.
if root_path in flatc_exe.parents:
flatc_exe = flatc_exe.relative_to(root_path)
flatc_path = Path(root_path, flatc_exe)
assert flatc_path.exists(), "Cannot find the flatc compiler " + str(flatc_path)
# Specify the other paths that will be referenced
tests_path = Path(script_path, "tests")
def flatc_annotate(schema, file, cwd=script_path):
cmd = [str(flatc_path), "--annotate", schema, file]
result = subprocess.run(cmd, cwd=str(cwd), check=True)
test_files = [
"annotated_binary.bin",
"tests/invalid_root_offset.bin",
"tests/invalid_root_table_too_short.bin",
"tests/invalid_root_table_vtable_offset.bin",
"tests/invalid_string_length.bin",
"tests/invalid_string_length_cut_short.bin",
"tests/invalid_struct_array_field_cut_short.bin",
"tests/invalid_struct_field_cut_short.bin",
"tests/invalid_table_field_size.bin",
"tests/invalid_table_field_offset.bin",
"tests/invalid_union_type_value.bin",
"tests/invalid_vector_length_cut_short.bin",
"tests/invalid_vector_scalars_cut_short.bin",
"tests/invalid_vector_strings_cut_short.bin",
"tests/invalid_vector_structs_cut_short.bin",
"tests/invalid_vector_tables_cut_short.bin",
"tests/invalid_vector_unions_cut_short.bin",
"tests/invalid_vector_union_type_value.bin",
"tests/invalid_vtable_ref_table_size_short.bin",
"tests/invalid_vtable_ref_table_size.bin",
"tests/invalid_vtable_size_short.bin",
"tests/invalid_vtable_size.bin",
"tests/invalid_vtable_field_offset.bin",
]
for test_file in test_files:
flatc_annotate("annotated_binary.fbs", test_file)
@@ -0,0 +1,125 @@
# Tests for Annotated Binaries
## Invalid Binary Tests
The following is a collection of manually corrupted binaries based off of
`..\annotated_binary.bin`. Each file changes some offset or length/size entry to
point so an invalid spot, and the generated annotated binaries demonstrate that
those corruptions can be spotted.
Each of these files were ran with the following command:
```sh
cd .tests/annotated_binary
../../flatc -annotate annotated_binary.fbs tests/{binary_file}...
```
### `invalid_root_offset.bin`
Changed first two bytes from `4400` to `FFFF` which produces an offset larger
than the binary.
### `invalid_root_table_vtable_offset.bin`
Changed two bytes at 0x0044 from `3A00` to `FFFF` which points to an offset
outside the binary.
### `invalid_root_table_too_short.bin`
Truncated the file to 0x46 bytes, as that cuts into the vtable offset field of
the root table.
```sh
truncate annotated_binary.bin --size=70 >> invalid_root_table_too_short.bin
```
### `invalid_vtable_size.bin`
Changed two bytes at 0x000A from `3A00` to `FFFF` which size is larger than the
binary.
### `invalid_vtable_size_short.bin`
Changed two bytes at 0x000A from `3A00` to `0100` which size is smaller than the
minimum size of 4 bytes.
### `invalid_vtable_ref_table_size.bin`
Changed two bytes at 0x000C from `6800` to `FFFF` which size is larger than the
binary.
### `invalid_vtable_ref_table_size_short.bin`
Changed two bytes at 0x000C from `6800` to `0100` which size is smaller than
the minimum size of 4 bytes.
### `invalid_vtable_field_offset.bin`
Changed two bytes at 0x0016 from `1000` to `FFFF` which points to a field larger
than the binary.
### `invalid_table_field_size.bin`
Truncated the file to 0x52 bytes, as that cuts a Uint32t value in half.
### `invalid_table_field_offset.bin`
Truncated the file to 0x96 bytes, as that cuts a UOffset32 value in half. Also,
changed two bytes at 0x90 from `DC00` to `FFFF` which points to a section larger
than the binary.
### `invalid_string_length_cut_short.bin`
Truncated the file to 0xAD bytes, as that cuts string length Uint32t value in
half.
### `invalid_string_length.bin`
Changed two bytes at 0x00AC from `0500` to `FFFF` which is a string length
larger than the binary.
### `invalid_vector_length_cut_short.bin`
Truncated the file to 0x0136 bytes, as that cuts vector length Uint32t value in
half.
### `invalid_struct_field_cut_short.bin`
Truncated the file to 0x5d bytes, as that cuts struct field value in half.
### `invalid_struct_array_field_cut_short.bin`
Truncated the file to 0x6A bytes, as that cuts struct array field value in half.
### `invalid_vector_structs_cut_short.bin`
Truncated the file to 0x0154 bytes, as that cuts into a vector of structs.
### `invalid_vector_tables_cut_short.bin`
Truncated the file to 0x01DE bytes, as that cuts into a vector of table offsets.
### `invalid_vector_strings_cut_short.bin`
Truncated the file to 0x0176 bytes, as that cuts into a vector of string
offsets.
### `invalid_vector_scalars_cut_short.bin`
Truncated the file to 0x01C1 bytes, as that cuts into a vector of scalars
values.
### `invalid_vector_unions_cut_short.bin`
Truncated the file to 0x01DE bytes, as that cuts into a vector of union offset
values.
### `invalid_union_type_value.bin`
Changed one byte at 0x004D from `02` to `FF` which is a union type value that is
larger than the enum.
### `invalid_vector_union_type_value.bin`
Changed one byte at 0x0131 from `02` to `FF` which is a vector union type value
that is larger than the enum.
@@ -0,0 +1,93 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_root_offset.bin
header:
+0x0000 | FF FF 00 00 | UOffset32 | 0x0000FFFF (65535) Loc: 0xFFFF | ERROR: offset to root table `AnnotatedBinary.Foo`. Invalid offset, points outside the binary.
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references):
+0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[664] | ..:.h... | WARN: nothing refers to this section.
+0x0010 | 07 00 00 00 08 00 10 00 | | ........
+0x0018 | 14 00 30 00 34 00 09 00 | | ..0.4...
+0x0020 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D.
+0x0028 | 00 00 00 00 48 00 4C 00 | | ....H.L.
+0x0030 | 50 00 54 00 58 00 0A 00 | | P.T.X...
+0x0038 | 5C 00 0B 00 60 00 00 00 | | \...`...
+0x0040 | 00 00 64 00 3A 00 00 00 | | ..d.:...
+0x0048 | 00 00 00 01 02 02 01 01 | | ........
+0x0050 | D2 04 00 00 28 02 00 00 | | ....(...
+0x0058 | 01 00 00 00 02 00 00 00 | | ........
+0x0060 | 0C 00 00 00 0A 00 00 00 | | ........
+0x0068 | 0C 00 00 00 14 00 00 00 | | ........
+0x0070 | 01 02 03 00 C8 01 00 00 | | ........
+0x0078 | 5C 01 00 00 50 01 00 00 | | \...P...
+0x0080 | 34 01 00 00 24 01 00 00 | | 4...$...
+0x0088 | 14 01 00 00 0D 00 00 00 | | ........
+0x0090 | DC 00 00 00 A0 00 00 00 | | ........
+0x0098 | 94 00 00 00 38 00 00 00 | | ....8...
+0x00A0 | 33 00 00 00 1C 00 00 00 | | 3.......
+0x00A8 | 04 00 00 00 05 00 00 00 | | ........
+0x00B0 | 61 6C 69 63 65 00 00 00 | | alice...
+0x00B8 | 08 00 13 00 08 00 04 00 | | ........
+0x00C0 | 08 00 00 00 00 80 23 44 | | ......#D
+0x00C8 | 00 00 00 00 00 10 74 40 | | ......t@
+0x00D0 | 00 00 00 05 03 00 00 00 | | ........
+0x00D8 | 34 00 00 00 2C 00 00 00 | | 4...,...
+0x00E0 | 04 00 00 00 D2 FE FF FF | | ........
+0x00E8 | 00 80 23 44 10 00 00 00 | | ..#D....
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 04 00 04 00 | | ........
+0x0108 | 04 00 00 00 FA FE FF FF | | ........
+0x0110 | 00 00 E4 43 10 00 00 00 | | ...C....
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 03 00 00 00 | | ........
+0x0130 | 01 02 01 00 03 00 00 00 | | ........
+0x0138 | 33 33 33 33 33 A3 45 40 | | 33333.E@
+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 61 85 5E C0 | | .wcAa.^.
+0x0158 | 8F 35 23 83 DC 35 4B C0 | | .5#..5K.
+0x0160 | F6 97 DD 93 87 C5 0A 40 | | .......@
+0x0168 | 00 00 00 00 03 00 00 00 | | ........
+0x0170 | 20 00 00 00 14 00 00 00 | | .......
+0x0178 | 04 00 00 00 07 00 00 00 | | ........
+0x0180 | 63 68 61 72 6C 69 65 00 | | charlie.
+0x0188 | 03 00 00 00 62 6F 62 00 | | ....bob.
+0x0190 | 05 00 00 00 61 6C 69 63 | | ....alic
+0x0198 | 65 00 00 00 07 00 00 00 | | e.......
+0x01A0 | 63 68 61 72 6C 69 65 00 | | charlie.
+0x01A8 | 07 00 00 00 63 68 61 72 | | ....char
+0x01B0 | 6C 69 65 00 09 00 00 00 | | lie.....
+0x01B8 | 09 00 08 00 07 00 01 00 | | ........
+0x01C0 | 02 00 03 00 06 00 05 00 | | ........
+0x01C8 | 04 00 00 00 3A FF FF FF | | ....:...
+0x01D0 | 00 00 00 03 02 00 00 00 | | ........
+0x01D8 | 44 00 00 00 10 00 00 00 | | D.......
+0x01E0 | 00 00 0A 00 1A 00 0C 00 | | ........
+0x01E8 | 04 00 08 00 0A 00 00 00 | | ........
+0x01F0 | 00 80 23 44 18 00 00 00 | | ..#D....
+0x01F8 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x0200 | 00 00 00 00 00 00 06 00 | | ........
+0x0208 | 06 00 05 00 06 00 00 00 | | ........
+0x0210 | 00 03 0A 00 18 00 0C 00 | | ........
+0x0218 | 04 00 08 00 0A 00 00 00 | | ........
+0x0220 | 00 00 E4 43 10 00 00 00 | | ...C....
+0x0228 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0230 | 00 00 00 00 A2 FF FF FF | | ........
+0x0238 | 00 00 00 01 2F 00 00 00 | | ..../...
+0x0240 | 54 68 69 73 20 69 73 20 | | This is
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E 00 | | aks up..
+0x0270 | 00 00 0A 00 16 00 0C 00 | | ........
+0x0278 | 04 00 08 00 0A 00 00 00 | | ........
+0x0280 | 65 20 71 49 14 00 00 00 | | e qI....
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | | .v...$.@
+0x0290 | 00 00 06 00 08 00 07 00 | | ........
+0x0298 | 06 00 00 00 00 00 00 01 | | ........
@@ -0,0 +1,21 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_root_table_too_short.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references):
+0x08 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section.
+0x10 | 07 00 00 00 08 00 10 00 | | ........
+0x18 | 14 00 30 00 34 00 09 00 | | ..0.4...
+0x20 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D.
+0x28 | 00 00 00 00 48 00 4C 00 | | ....H.L.
+0x30 | 50 00 54 00 58 00 0A 00 | | P.T.X...
+0x38 | 5C 00 0B 00 60 00 00 00 | | \...`...
+0x40 | 00 00 64 00 | | ..d.
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 | ?uint8_t[2] | :. | ERROR: offset to vtable. Incomplete binary, expected to read 4 bytes.
@@ -0,0 +1,98 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_root_table_vtable_offset.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
unknown (no known references):
+0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section.
+0x0010 | 07 00 00 00 08 00 10 00 | | ........
+0x0018 | 14 00 30 00 34 00 09 00 | | ..0.4...
+0x0020 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D.
+0x0028 | 00 00 00 00 48 00 4C 00 | | ....H.L.
+0x0030 | 50 00 54 00 58 00 0A 00 | | P.T.X...
+0x0038 | 5C 00 0B 00 60 00 00 00 | | \...`...
+0x0040 | 00 00 64 00 | | ..d.
root_table (AnnotatedBinary.Foo):
+0x0044 | FF FF 00 00 | SOffset32 | 0x0000FFFF (65535) Loc: 0xFFFFFFFFFFFF0045 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0048 | 00 00 00 01 02 02 01 01 | ?uint8_t[600] | ........ | WARN: nothing refers to this section.
+0x0050 | D2 04 00 00 28 02 00 00 | | ....(...
+0x0058 | 01 00 00 00 02 00 00 00 | | ........
+0x0060 | 0C 00 00 00 0A 00 00 00 | | ........
+0x0068 | 0C 00 00 00 14 00 00 00 | | ........
+0x0070 | 01 02 03 00 C8 01 00 00 | | ........
+0x0078 | 5C 01 00 00 50 01 00 00 | | \...P...
+0x0080 | 34 01 00 00 24 01 00 00 | | 4...$...
+0x0088 | 14 01 00 00 0D 00 00 00 | | ........
+0x0090 | DC 00 00 00 A0 00 00 00 | | ........
+0x0098 | 94 00 00 00 38 00 00 00 | | ....8...
+0x00A0 | 33 00 00 00 1C 00 00 00 | | 3.......
+0x00A8 | 04 00 00 00 05 00 00 00 | | ........
+0x00B0 | 61 6C 69 63 65 00 00 00 | | alice...
+0x00B8 | 08 00 13 00 08 00 04 00 | | ........
+0x00C0 | 08 00 00 00 00 80 23 44 | | ......#D
+0x00C8 | 00 00 00 00 00 10 74 40 | | ......t@
+0x00D0 | 00 00 00 05 03 00 00 00 | | ........
+0x00D8 | 34 00 00 00 2C 00 00 00 | | 4...,...
+0x00E0 | 04 00 00 00 D2 FE FF FF | | ........
+0x00E8 | 00 80 23 44 10 00 00 00 | | ..#D....
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 04 00 04 00 | | ........
+0x0108 | 04 00 00 00 FA FE FF FF | | ........
+0x0110 | 00 00 E4 43 10 00 00 00 | | ...C....
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 03 00 00 00 | | ........
+0x0130 | 01 02 01 00 03 00 00 00 | | ........
+0x0138 | 33 33 33 33 33 A3 45 40 | | 33333.E@
+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 61 85 5E C0 | | .wcAa.^.
+0x0158 | 8F 35 23 83 DC 35 4B C0 | | .5#..5K.
+0x0160 | F6 97 DD 93 87 C5 0A 40 | | .......@
+0x0168 | 00 00 00 00 03 00 00 00 | | ........
+0x0170 | 20 00 00 00 14 00 00 00 | | .......
+0x0178 | 04 00 00 00 07 00 00 00 | | ........
+0x0180 | 63 68 61 72 6C 69 65 00 | | charlie.
+0x0188 | 03 00 00 00 62 6F 62 00 | | ....bob.
+0x0190 | 05 00 00 00 61 6C 69 63 | | ....alic
+0x0198 | 65 00 00 00 07 00 00 00 | | e.......
+0x01A0 | 63 68 61 72 6C 69 65 00 | | charlie.
+0x01A8 | 07 00 00 00 63 68 61 72 | | ....char
+0x01B0 | 6C 69 65 00 09 00 00 00 | | lie.....
+0x01B8 | 09 00 08 00 07 00 01 00 | | ........
+0x01C0 | 02 00 03 00 06 00 05 00 | | ........
+0x01C8 | 04 00 00 00 3A FF FF FF | | ....:...
+0x01D0 | 00 00 00 03 02 00 00 00 | | ........
+0x01D8 | 44 00 00 00 10 00 00 00 | | D.......
+0x01E0 | 00 00 0A 00 1A 00 0C 00 | | ........
+0x01E8 | 04 00 08 00 0A 00 00 00 | | ........
+0x01F0 | 00 80 23 44 18 00 00 00 | | ..#D....
+0x01F8 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x0200 | 00 00 00 00 00 00 06 00 | | ........
+0x0208 | 06 00 05 00 06 00 00 00 | | ........
+0x0210 | 00 03 0A 00 18 00 0C 00 | | ........
+0x0218 | 04 00 08 00 0A 00 00 00 | | ........
+0x0220 | 00 00 E4 43 10 00 00 00 | | ...C....
+0x0228 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0230 | 00 00 00 00 A2 FF FF FF | | ........
+0x0238 | 00 00 00 01 2F 00 00 00 | | ..../...
+0x0240 | 54 68 69 73 20 69 73 20 | | This is
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E 00 | | aks up..
+0x0270 | 00 00 0A 00 16 00 0C 00 | | ........
+0x0278 | 04 00 08 00 0A 00 00 00 | | ........
+0x0280 | 65 20 71 49 14 00 00 00 | | e qI....
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | | .v...$.@
+0x0290 | 00 00 06 00 08 00 07 00 | | ........
+0x0298 | 06 00 00 00 00 00 00 01 | | ........
@@ -0,0 +1,295 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_string_length.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | FF FF 00 00 | uint32_t | 0x0000FFFF (65535) | ERROR: length of string. Longer than the binary.
unknown (no known references):
+0x00B0 | 61 6C 69 63 65 00 00 00 | ?uint8_t[8] | alice... | WARN: nothing refers to this section.
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -0,0 +1,80 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_string_length_cut_short.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x73 | 00 | uint8_t[1] | . | padding
+0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x94 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x134 | ERROR: offset to field `points_of_interest`. Invalid offset, points outside the binary.
+0x98 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x12C | ERROR: offset to field `foobars_type`. Invalid offset, points outside the binary.
+0x9C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0xD4 | ERROR: offset to field `foobars`. Invalid offset, points outside the binary.
+0xA0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0xD3 | ERROR: offset to field `measurement`. Invalid offset, points outside the binary.
+0xA4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0xC0 | ERROR: offset to field `anything`. Invalid offset, points outside the binary.
+0xA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0xAC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0xAC | 05 00 | ?uint8_t[2] | .. | ERROR: length of string. Incomplete binary, expected to read 4 bytes.
@@ -0,0 +1,72 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_struct_array_field_cut_short.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 | ?uint8_t[2] | .. | ERROR: array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int). Incomplete binary, expected to read 4 bytes.
@@ -0,0 +1,69 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_struct_field_cut_short.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 | ?uint8_t[2] | .. | ERROR: struct field `home.doors` of 'AnnotatedBinary.Building' (Int). Incomplete binary, expected to read 4 bytes.
@@ -0,0 +1,77 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_table_field_offset.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x73 | 00 | uint8_t[1] | . | padding
+0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x94 | A0 00 | ?uint8_t[2] | .. | ERROR: offset to field `points_of_interest`. Incomplete binary, expected to read 4 bytes.
@@ -0,0 +1,68 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_table_field_size.bin
header:
+0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo`
+0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x08 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary.
+0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x16 | 10 00 | VOffset16 | 0x0010 (16) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary.
+0x18 | 14 00 | VOffset16 | 0x0014 (20) | ERROR: offset to field `home` (id: 5). Invalid offset, points outside the binary.
+0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary.
+0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary.
+0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary.
+0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary.
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary.
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary.
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary.
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary.
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary.
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary.
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary.
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary.
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary.
+0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to unknown field (id: 11)
+0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to unknown field (id: 12)
+0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13)
+0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14)
+0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15)
+0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16)
+0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17)
+0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18)
+0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19)
+0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20)
+0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21)
+0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22)
+0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23)
+0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24)
+0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25)
+0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable
+0x48 | 00 00 00 | uint8_t[3] | ... | padding
+0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x50 | D2 04 | ?uint8_t[2] | .. | ERROR: table field `counter` (Int). Incomplete binary, expected to read 4 bytes.
@@ -0,0 +1,293 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_union_type_value.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | FF | UType8 | 0xFF (255) | ERROR: table field `bar_baz_type` (UType). Invalid union type value.
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | ?uint8_t[4] | P... | WARN: nothing refers to this section.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
unknown (no known references):
+0x01CA | 00 00 3A FF FF FF 00 00 | ?uint8_t[10] | ..:..... | WARN: nothing refers to this section.
+0x01D2 | 00 03 | | ..
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -0,0 +1,140 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vector_length_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 | ?uint8_t[2] | .. | ERROR: length of vector (# items). Incomplete binary, expected to read 4 bytes.
@@ -0,0 +1,190 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vector_scalars_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x01B8 | 09 00 08 00 07 00 01 00 | ?uint8_t[9] | ........ | WARN: nothing refers to this section.
+0x01C0 | 02 | | .
@@ -0,0 +1,155 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vector_strings_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x0170 | 20 00 00 00 14 00 | ?uint8_t[6] | ..... | WARN: could be corrupted padding region.
@@ -0,0 +1,146 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vector_structs_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary.
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary.
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary.
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary.
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary.
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary.
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x0138 | 33 33 33 33 33 A3 45 40 | ?uint8_t[28] | 33333.E@ | WARN: nothing refers to this section.
+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
@@ -0,0 +1,210 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vector_tables_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region.
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region.
@@ -0,0 +1,293 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vector_union_type_value.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | ?uint8_t[4] | ,... | WARN: nothing refers to this section.
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
unknown (no known references):
+0x0104 | 04 00 04 00 04 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section.
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | FF | UType8 | 0xFF (255) | ERROR: value[1]. Invalid union type value.
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -0,0 +1,210 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vector_unions_cut_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary.
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section.
+0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@
+0x00F8 | 00 00 00 00 6A FE FF FF | | ....j...
+0x0100 | 00 00 00 03 | | ....
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section.
+0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@
+0x0120 | 00 00 00 00 92 FE FF FF | | ........
+0x0128 | 00 00 00 01 | | ....
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary.
unknown (no known references):
+0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region.
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary.
unknown (no known references):
+0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region.
@@ -0,0 +1,286 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vtable_field_offset.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | FF FF | VOffset16 | 0xFFFF (65535) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary.
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | ?uint8_t[4] | (... | WARN: nothing refers to this section.
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
unknown (no known references):
+0x0270 | 00 00 0A 00 16 00 0C 00 | ?uint8_t[34] | ........ | WARN: nothing refers to this section.
+0x0278 | 04 00 08 00 0A 00 00 00 | | ........
+0x0280 | 65 20 71 49 14 00 00 00 | | e qI....
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | | .v...$.@
+0x0290 | 00 00 | | ..
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
unknown (no known references):
+0x0298 | 06 00 00 00 00 00 00 01 | ?uint8_t[8] | ........ | WARN: nothing refers to this section.
@@ -0,0 +1,360 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vtable_ref_table_size.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of referring table. Longer than the binary.
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
+0x00AC | 05 00 00 00 61 6C 69 63 | uint8_t[500] | ....alic | padding
+0x00B4 | 65 00 00 00 08 00 13 00 | | e.......
+0x00BC | 08 00 04 00 08 00 00 00 | | ........
+0x00C4 | 00 80 23 44 00 00 00 00 | | ..#D....
+0x00CC | 00 10 74 40 00 00 00 05 | | ..t@....
+0x00D4 | 03 00 00 00 34 00 00 00 | | ....4...
+0x00DC | 2C 00 00 00 04 00 00 00 | | ,.......
+0x00E4 | D2 FE FF FF 00 80 23 44 | | ......#D
+0x00EC | 10 00 00 00 00 00 00 00 | | ........
+0x00F4 | 00 D8 8E 40 00 00 00 00 | | ...@....
+0x00FC | 6A FE FF FF 00 00 00 03 | | j.......
+0x0104 | 04 00 04 00 04 00 00 00 | | ........
+0x010C | FA FE FF FF 00 00 E4 43 | | .......C
+0x0114 | 10 00 00 00 00 00 00 00 | | ........
+0x011C | 00 C0 5E 40 00 00 00 00 | | ..^@....
+0x0124 | 92 FE FF FF 00 00 00 01 | | ........
+0x012C | 03 00 00 00 01 02 01 00 | | ........
+0x0134 | 03 00 00 00 33 33 33 33 | | ....3333
+0x013C | 33 A3 45 40 7E 57 04 FF | | 3.E@~W..
+0x0144 | 5B 87 53 C0 8D F0 F6 20 | | [.S....
+0x014C | 04 B6 42 40 9F 77 63 41 | | ..B@.wcA
+0x0154 | 61 85 5E C0 8F 35 23 83 | | a.^..5#.
+0x015C | DC 35 4B C0 F6 97 DD 93 | | .5K.....
+0x0164 | 87 C5 0A 40 00 00 00 00 | | ...@....
+0x016C | 03 00 00 00 20 00 00 00 | | .... ...
+0x0174 | 14 00 00 00 04 00 00 00 | | ........
+0x017C | 07 00 00 00 63 68 61 72 | | ....char
+0x0184 | 6C 69 65 00 03 00 00 00 | | lie.....
+0x018C | 62 6F 62 00 05 00 00 00 | | bob.....
+0x0194 | 61 6C 69 63 65 00 00 00 | | alice...
+0x019C | 07 00 00 00 63 68 61 72 | | ....char
+0x01A4 | 6C 69 65 00 07 00 00 00 | | lie.....
+0x01AC | 63 68 61 72 6C 69 65 00 | | charlie.
+0x01B4 | 09 00 00 00 09 00 08 00 | | ........
+0x01BC | 07 00 01 00 02 00 03 00 | | ........
+0x01C4 | 06 00 05 00 04 00 00 00 | | ........
+0x01CC | 3A FF FF FF 00 00 00 03 | | :.......
+0x01D4 | 02 00 00 00 44 00 00 00 | | ....D...
+0x01DC | 10 00 00 00 00 00 0A 00 | | ........
+0x01E4 | 1A 00 0C 00 04 00 08 00 | | ........
+0x01EC | 0A 00 00 00 00 80 23 44 | | ......#D
+0x01F4 | 18 00 00 00 00 00 00 00 | | ........
+0x01FC | 00 D8 8E 40 00 00 00 00 | | ...@....
+0x0204 | 00 00 06 00 06 00 05 00 | | ........
+0x020C | 06 00 00 00 00 03 0A 00 | | ........
+0x0214 | 18 00 0C 00 04 00 08 00 | | ........
+0x021C | 0A 00 00 00 00 00 E4 43 | | .......C
+0x0224 | 10 00 00 00 00 00 00 00 | | ........
+0x022C | 00 C0 5E 40 00 00 00 00 | | ..^@....
+0x0234 | A2 FF FF FF 00 00 00 01 | | ........
+0x023C | 2F 00 00 00 54 68 69 73 | | /...This
+0x0244 | 20 69 73 20 61 20 6C 6F | | is a lo
+0x024C | 6E 67 20 73 74 72 69 6E | | ng strin
+0x0254 | 67 20 74 6F 20 73 68 6F | | g to sho
+0x025C | 77 20 68 6F 77 20 69 74 | | w how it
+0x0264 | 20 62 72 65 61 6B 73 20 | | breaks
+0x026C | 75 70 2E 00 00 00 0A 00 | | up......
+0x0274 | 16 00 0C 00 04 00 08 00 | | ........
+0x027C | 0A 00 00 00 65 20 71 49 | | ....e qI
+0x0284 | 14 00 00 00 C9 76 BE 9F | | .....v..
+0x028C | 0C 24 FE 40 00 00 06 00 | | .$.@....
+0x0294 | 08 00 07 00 06 00 00 00 | | ........
+0x029C | 00 00 00 01 | | ....
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -0,0 +1,297 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vtable_ref_table_size_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable
+0x000C | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of referring table. Shorter than the minimum length:
+0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0)
+0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1)
+0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) <defaults to 99> (Long)
+0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3)
+0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4)
+0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5)
+0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6)
+0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7)
+0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8)
+0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9)
+0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10)
+0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11)
+0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12)
+0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) <defaults to 0> (Int)
+0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) <defaults to 42> (Int)
+0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15)
+0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16)
+0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17)
+0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18)
+0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19)
+0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20)
+0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21)
+0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22)
+0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23)
+0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) <defaults to 98.600000> (Float)
+0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) <null> (Obj)
+0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26)
root_table (AnnotatedBinary.Foo):
+0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable
+0x0048 | 00 00 00 | uint8_t[3] | ... | padding
+0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool)
+0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte)
+0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType)
+0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType)
+0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType)
+0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int)
+0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table)
+0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int)
+0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int)
+0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int)
+0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int)
+0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int)
+0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int)
+0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte)
+0x0073 | 00 | uint8_t[1] | . | padding
+0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string)
+0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector)
+0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`)
+0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector)
+0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string)
+0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string)
+0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int)
+0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector)
+0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector)
+0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector)
+0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector)
+0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`)
+0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`)
+0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string)
string (AnnotatedBinary.Foo.charlie):
+0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x00B5 | 00 | char | 0x00 (0) | string terminator
padding:
+0x00B6 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable
+0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table
+0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0)
+0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
table (AnnotatedBinary.Bar):
+0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable
+0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double)
+0x00D0 | 00 00 00 | uint8_t[3] | ... | padding
union (AnnotatedBinary.Tolerance.measurement):
+0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte)
vector (AnnotatedBinary.Foo.foobars):
+0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`)
+0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`)
+0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`)
table (AnnotatedBinary.Bar):
+0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable
+0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table)
+0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable
+0x0100 | 00 00 00 | uint8_t[3] | ... | padding
+0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Baz):
+0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable
+0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table
table (AnnotatedBinary.Baz):
+0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable
table (AnnotatedBinary.Bar):
+0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable
+0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table)
+0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable
+0x0128 | 00 00 00 | uint8_t[3] | ... | padding
+0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.foobars_type):
+0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0130 | 01 | UType8 | 0x01 (1) | value[0]
+0x0131 | 02 | UType8 | 0x02 (2) | value[1]
+0x0132 | 01 | UType8 | 0x01 (1) | value[2]
vector (AnnotatedBinary.Foo.points_of_interest):
+0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double)
+0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double)
+0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double)
padding:
+0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding
vector (AnnotatedBinary.Foo.names):
+0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items)
+0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0]
+0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1]
+0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2]
string (AnnotatedBinary.Foo.names):
+0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x0187 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string
+0x018C | 62 6F 62 | char[3] | bob | string literal
+0x018F | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.names):
+0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string
+0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal
+0x0199 | 00 | char | 0x00 (0) | string terminator
padding:
+0x019A | 00 00 | uint8_t[2] | .. | padding
string (AnnotatedBinary.Foo.alice):
+0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01A7 | 00 | char | 0x00 (0) | string terminator
string (AnnotatedBinary.Foo.bob):
+0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string
+0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal
+0x01B3 | 00 | char | 0x00 (0) | string terminator
vector (AnnotatedBinary.Foo.accounts):
+0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items)
+0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0]
+0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1]
+0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2]
+0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3]
+0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4]
+0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5]
+0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6]
+0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7]
+0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8]
padding:
+0x01CA | 00 00 | uint8_t[2] | .. | padding
table (AnnotatedBinary.Baz):
+0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable
+0x01D0 | 00 00 00 | uint8_t[3] | ... | padding
+0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vector (AnnotatedBinary.Foo.bars):
+0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items)
+0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0]
+0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1]
padding:
+0x01E0 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table
+0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable
+0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float)
+0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table)
+0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double)
+0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding
vtable (AnnotatedBinary.Baz):
+0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table
+0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable
+0x0210 | 00 | uint8_t[1] | . | padding
+0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte)
vtable (AnnotatedBinary.Bar):
+0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table
+0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable
+0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float)
+0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table)
+0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double)
+0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding
table (AnnotatedBinary.Baz):
+0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable
+0x0238 | 00 00 00 | uint8_t[3] | ... | padding
+0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
string (AnnotatedBinary.Foo.name):
+0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string
+0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal
+0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s
+0x0250 | 74 72 69 6E 67 20 74 6F | | tring to
+0x0258 | 20 73 68 6F 77 20 68 6F | | show ho
+0x0260 | 77 20 69 74 20 62 72 65 | | w it bre
+0x0268 | 61 6B 73 20 75 70 2E | | aks up.
+0x026F | 00 | char | 0x00 (0) | string terminator
padding:
+0x0270 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Bar):
+0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable
+0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table
+0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0)
+0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1)
+0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2)
table (AnnotatedBinary.Bar):
+0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable
+0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float)
+0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table)
+0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double)
+0x0290 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Baz):
+0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable
+0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table
+0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0)
table (AnnotatedBinary.Baz):
+0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable
+0x029C | 00 00 00 | uint8_t[3] | ... | padding
+0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte)
@@ -0,0 +1,99 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vtable_size.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of this vtable. Longer than the binary.
unknown (no known references):
+0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section.
+0x0014 | 08 00 10 00 14 00 30 00 | | ......0.
+0x001C | 34 00 09 00 38 00 3C 00 | | 4...8.<.
+0x0024 | 40 00 44 00 00 00 00 00 | | @.D.....
+0x002C | 48 00 4C 00 50 00 54 00 | | H.L.P.T.
+0x0034 | 58 00 0A 00 5C 00 0B 00 | | X...\...
+0x003C | 60 00 00 00 00 00 64 00 | | `.....d.
+0x0044 | 3A 00 00 00 00 00 00 01 | | :.......
+0x004C | 02 02 01 01 D2 04 00 00 | | ........
+0x0054 | 28 02 00 00 01 00 00 00 | | (.......
+0x005C | 02 00 00 00 0C 00 00 00 | | ........
+0x0064 | 0A 00 00 00 0C 00 00 00 | | ........
+0x006C | 14 00 00 00 01 02 03 00 | | ........
+0x0074 | C8 01 00 00 5C 01 00 00 | | ....\...
+0x007C | 50 01 00 00 34 01 00 00 | | P...4...
+0x0084 | 24 01 00 00 14 01 00 00 | | $.......
+0x008C | 0D 00 00 00 DC 00 00 00 | | ........
+0x0094 | A0 00 00 00 94 00 00 00 | | ........
+0x009C | 38 00 00 00 33 00 00 00 | | 8...3...
+0x00A4 | 1C 00 00 00 04 00 00 00 | | ........
+0x00AC | 05 00 00 00 61 6C 69 63 | | ....alic
+0x00B4 | 65 00 00 00 08 00 13 00 | | e.......
+0x00BC | 08 00 04 00 08 00 00 00 | | ........
+0x00C4 | 00 80 23 44 00 00 00 00 | | ..#D....
+0x00CC | 00 10 74 40 00 00 00 05 | | ..t@....
+0x00D4 | 03 00 00 00 34 00 00 00 | | ....4...
+0x00DC | 2C 00 00 00 04 00 00 00 | | ,.......
+0x00E4 | D2 FE FF FF 00 80 23 44 | | ......#D
+0x00EC | 10 00 00 00 00 00 00 00 | | ........
+0x00F4 | 00 D8 8E 40 00 00 00 00 | | ...@....
+0x00FC | 6A FE FF FF 00 00 00 03 | | j.......
+0x0104 | 04 00 04 00 04 00 00 00 | | ........
+0x010C | FA FE FF FF 00 00 E4 43 | | .......C
+0x0114 | 10 00 00 00 00 00 00 00 | | ........
+0x011C | 00 C0 5E 40 00 00 00 00 | | ..^@....
+0x0124 | 92 FE FF FF 00 00 00 01 | | ........
+0x012C | 03 00 00 00 01 02 01 00 | | ........
+0x0134 | 03 00 00 00 33 33 33 33 | | ....3333
+0x013C | 33 A3 45 40 7E 57 04 FF | | 3.E@~W..
+0x0144 | 5B 87 53 C0 8D F0 F6 20 | | [.S....
+0x014C | 04 B6 42 40 9F 77 63 41 | | ..B@.wcA
+0x0154 | 61 85 5E C0 8F 35 23 83 | | a.^..5#.
+0x015C | DC 35 4B C0 F6 97 DD 93 | | .5K.....
+0x0164 | 87 C5 0A 40 00 00 00 00 | | ...@....
+0x016C | 03 00 00 00 20 00 00 00 | | .... ...
+0x0174 | 14 00 00 00 04 00 00 00 | | ........
+0x017C | 07 00 00 00 63 68 61 72 | | ....char
+0x0184 | 6C 69 65 00 03 00 00 00 | | lie.....
+0x018C | 62 6F 62 00 05 00 00 00 | | bob.....
+0x0194 | 61 6C 69 63 65 00 00 00 | | alice...
+0x019C | 07 00 00 00 63 68 61 72 | | ....char
+0x01A4 | 6C 69 65 00 07 00 00 00 | | lie.....
+0x01AC | 63 68 61 72 6C 69 65 00 | | charlie.
+0x01B4 | 09 00 00 00 09 00 08 00 | | ........
+0x01BC | 07 00 01 00 02 00 03 00 | | ........
+0x01C4 | 06 00 05 00 04 00 00 00 | | ........
+0x01CC | 3A FF FF FF 00 00 00 03 | | :.......
+0x01D4 | 02 00 00 00 44 00 00 00 | | ....D...
+0x01DC | 10 00 00 00 00 00 0A 00 | | ........
+0x01E4 | 1A 00 0C 00 04 00 08 00 | | ........
+0x01EC | 0A 00 00 00 00 80 23 44 | | ......#D
+0x01F4 | 18 00 00 00 00 00 00 00 | | ........
+0x01FC | 00 D8 8E 40 00 00 00 00 | | ...@....
+0x0204 | 00 00 06 00 06 00 05 00 | | ........
+0x020C | 06 00 00 00 00 03 0A 00 | | ........
+0x0214 | 18 00 0C 00 04 00 08 00 | | ........
+0x021C | 0A 00 00 00 00 00 E4 43 | | .......C
+0x0224 | 10 00 00 00 00 00 00 00 | | ........
+0x022C | 00 C0 5E 40 00 00 00 00 | | ..^@....
+0x0234 | A2 FF FF FF 00 00 00 01 | | ........
+0x023C | 2F 00 00 00 54 68 69 73 | | /...This
+0x0244 | 20 69 73 20 61 20 6C 6F | | is a lo
+0x024C | 6E 67 20 73 74 72 69 6E | | ng strin
+0x0254 | 67 20 74 6F 20 73 68 6F | | g to sho
+0x025C | 77 20 68 6F 77 20 69 74 | | w how it
+0x0264 | 20 62 72 65 61 6B 73 20 | | breaks
+0x026C | 75 70 2E 00 00 00 0A 00 | | up......
+0x0274 | 16 00 0C 00 04 00 08 00 | | ........
+0x027C | 0A 00 00 00 65 20 71 49 | | ....e qI
+0x0284 | 14 00 00 00 C9 76 BE 9F | | .....v..
+0x028C | 0C 24 FE 40 00 00 06 00 | | .$.@....
+0x0294 | 08 00 07 00 06 00 00 00 | | ........
+0x029C | 00 00 00 01 | | ....
@@ -0,0 +1,99 @@
// Annotated Flatbuffer Binary
//
// Schema file: annotated_binary.fbs
// Binary file: tests/invalid_vtable_size_short.bin
header:
+0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo`
+0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier
padding:
+0x0008 | 00 00 | uint8_t[2] | .. | padding
vtable (AnnotatedBinary.Foo):
+0x000A | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of this vtable. Shorter than the minimum length:
unknown (no known references):
+0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section.
+0x0014 | 08 00 10 00 14 00 30 00 | | ......0.
+0x001C | 34 00 09 00 38 00 3C 00 | | 4...8.<.
+0x0024 | 40 00 44 00 00 00 00 00 | | @.D.....
+0x002C | 48 00 4C 00 50 00 54 00 | | H.L.P.T.
+0x0034 | 58 00 0A 00 5C 00 0B 00 | | X...\...
+0x003C | 60 00 00 00 00 00 64 00 | | `.....d.
+0x0044 | 3A 00 00 00 00 00 00 01 | | :.......
+0x004C | 02 02 01 01 D2 04 00 00 | | ........
+0x0054 | 28 02 00 00 01 00 00 00 | | (.......
+0x005C | 02 00 00 00 0C 00 00 00 | | ........
+0x0064 | 0A 00 00 00 0C 00 00 00 | | ........
+0x006C | 14 00 00 00 01 02 03 00 | | ........
+0x0074 | C8 01 00 00 5C 01 00 00 | | ....\...
+0x007C | 50 01 00 00 34 01 00 00 | | P...4...
+0x0084 | 24 01 00 00 14 01 00 00 | | $.......
+0x008C | 0D 00 00 00 DC 00 00 00 | | ........
+0x0094 | A0 00 00 00 94 00 00 00 | | ........
+0x009C | 38 00 00 00 33 00 00 00 | | 8...3...
+0x00A4 | 1C 00 00 00 04 00 00 00 | | ........
+0x00AC | 05 00 00 00 61 6C 69 63 | | ....alic
+0x00B4 | 65 00 00 00 08 00 13 00 | | e.......
+0x00BC | 08 00 04 00 08 00 00 00 | | ........
+0x00C4 | 00 80 23 44 00 00 00 00 | | ..#D....
+0x00CC | 00 10 74 40 00 00 00 05 | | ..t@....
+0x00D4 | 03 00 00 00 34 00 00 00 | | ....4...
+0x00DC | 2C 00 00 00 04 00 00 00 | | ,.......
+0x00E4 | D2 FE FF FF 00 80 23 44 | | ......#D
+0x00EC | 10 00 00 00 00 00 00 00 | | ........
+0x00F4 | 00 D8 8E 40 00 00 00 00 | | ...@....
+0x00FC | 6A FE FF FF 00 00 00 03 | | j.......
+0x0104 | 04 00 04 00 04 00 00 00 | | ........
+0x010C | FA FE FF FF 00 00 E4 43 | | .......C
+0x0114 | 10 00 00 00 00 00 00 00 | | ........
+0x011C | 00 C0 5E 40 00 00 00 00 | | ..^@....
+0x0124 | 92 FE FF FF 00 00 00 01 | | ........
+0x012C | 03 00 00 00 01 02 01 00 | | ........
+0x0134 | 03 00 00 00 33 33 33 33 | | ....3333
+0x013C | 33 A3 45 40 7E 57 04 FF | | 3.E@~W..
+0x0144 | 5B 87 53 C0 8D F0 F6 20 | | [.S....
+0x014C | 04 B6 42 40 9F 77 63 41 | | ..B@.wcA
+0x0154 | 61 85 5E C0 8F 35 23 83 | | a.^..5#.
+0x015C | DC 35 4B C0 F6 97 DD 93 | | .5K.....
+0x0164 | 87 C5 0A 40 00 00 00 00 | | ...@....
+0x016C | 03 00 00 00 20 00 00 00 | | .... ...
+0x0174 | 14 00 00 00 04 00 00 00 | | ........
+0x017C | 07 00 00 00 63 68 61 72 | | ....char
+0x0184 | 6C 69 65 00 03 00 00 00 | | lie.....
+0x018C | 62 6F 62 00 05 00 00 00 | | bob.....
+0x0194 | 61 6C 69 63 65 00 00 00 | | alice...
+0x019C | 07 00 00 00 63 68 61 72 | | ....char
+0x01A4 | 6C 69 65 00 07 00 00 00 | | lie.....
+0x01AC | 63 68 61 72 6C 69 65 00 | | charlie.
+0x01B4 | 09 00 00 00 09 00 08 00 | | ........
+0x01BC | 07 00 01 00 02 00 03 00 | | ........
+0x01C4 | 06 00 05 00 04 00 00 00 | | ........
+0x01CC | 3A FF FF FF 00 00 00 03 | | :.......
+0x01D4 | 02 00 00 00 44 00 00 00 | | ....D...
+0x01DC | 10 00 00 00 00 00 0A 00 | | ........
+0x01E4 | 1A 00 0C 00 04 00 08 00 | | ........
+0x01EC | 0A 00 00 00 00 80 23 44 | | ......#D
+0x01F4 | 18 00 00 00 00 00 00 00 | | ........
+0x01FC | 00 D8 8E 40 00 00 00 00 | | ...@....
+0x0204 | 00 00 06 00 06 00 05 00 | | ........
+0x020C | 06 00 00 00 00 03 0A 00 | | ........
+0x0214 | 18 00 0C 00 04 00 08 00 | | ........
+0x021C | 0A 00 00 00 00 00 E4 43 | | .......C
+0x0224 | 10 00 00 00 00 00 00 00 | | ........
+0x022C | 00 C0 5E 40 00 00 00 00 | | ..^@....
+0x0234 | A2 FF FF FF 00 00 00 01 | | ........
+0x023C | 2F 00 00 00 54 68 69 73 | | /...This
+0x0244 | 20 69 73 20 61 20 6C 6F | | is a lo
+0x024C | 6E 67 20 73 74 72 69 6E | | ng strin
+0x0254 | 67 20 74 6F 20 73 68 6F | | g to sho
+0x025C | 77 20 68 6F 77 20 69 74 | | w how it
+0x0264 | 20 62 72 65 61 6B 73 20 | | breaks
+0x026C | 75 70 2E 00 00 00 0A 00 | | up......
+0x0274 | 16 00 0C 00 04 00 08 00 | | ........
+0x027C | 0A 00 00 00 65 20 71 49 | | ....e qI
+0x0284 | 14 00 00 00 C9 76 BE 9F | | .....v..
+0x028C | 0C 24 FE 40 00 00 06 00 | | .$.@....
+0x0294 | 08 00 07 00 06 00 00 00 | | ........
+0x029C | 00 00 00 01 | | ....