ROSE 2.1.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS Struct Reference

Description

Specimen architecture information.

Root of the entire document.

A CFG is represented explicitly by its edges.

An edge has a source, target, and data.

An indeterminate target has no data. It's a pointer to an unknown location.

A CFG edge that points to an address.

Data associated with a CFG edge.

List of all known functions.

Functions.

All known basic blocks.

Basic blocks.

All known instructions. Every instruction has a unique address.

Instructions ///////////////////////////////////////////////////////////////////////////////////////////////// One machine instruction.

A basic block is an non-empty, ordered list of instruction addresses. The address of a basic block is the address of its first instruction.

If the address is that of an instruction then the target will be a node in the CFG and a basic block with that address will exist in the BasicBlockList table. If the edge points to a non-instruction address, then the address will not be a node in the CFG nor will there be an instruction or basic block with that address.

The source is always a basic block address. The target does not necessarily need to be a node in the control flow graph, although it usually is.

The union of the edge source addresses are the nodes of the CFG and are instruction addresses.

Note that ROSE CFGs usually point to basic blocks rather than individual instructions, so when loading the CFG into ROSE you'll probably want to collapse nodes based on the BasicBlockList.

Root object for the flatbuffers file. Every flatbuffers file will store exactly one of these objects at the top level, and nothing else.

Definition at line 250 of file FlatBufferSchema.h.

#include <Rose/BinaryAnalysis/Serialization/FlatBufferSchema.h>

Inheritance diagram for Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS:
Collaboration graph
[legend]

Public Types

typedef ArchitectureBuilder Builder
 
typedef SegmentBuilder Builder
 
typedef MemoryMapBuilder Builder
 
typedef InstructionBuilder Builder
 
typedef InstructionListBuilder Builder
 
typedef BasicBlockBuilder Builder
 
typedef BasicBlockListBuilder Builder
 
typedef FunctionBuilder Builder
 
typedef FunctionListBuilder Builder
 
typedef CfgEdgeDataBuilder Builder
 
typedef AddressTargetBuilder Builder
 
typedef IndeterminateTargetBuilder Builder
 
typedef CfgEdgeBuilder Builder
 
typedef CfgBuilder Builder
 
typedef RootBuilder Builder
 

Public Member Functions

const ::flatbuffers::String * name () const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
uint64_t address () const
 
const ::flatbuffers::Vector< uint8_t > * bytes () const
 
uint8_t accessibility () const
 Accessibility bits OR'd together.
 
const ::flatbuffers::String * name () const
 optional name
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
Rose::BinaryAnalysis::Serialization::FlatBuffers::Endianness endianness () const
 
const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Segment > > * segments () const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
uint64_t address () const
 
const ::flatbuffers::Vector< uint8_t > * bytes () const
 
const ::flatbuffers::String * mnemonic () const
 optional mnemonic
 
const ::flatbuffers::String * operands () const
 optional operands
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Instruction > > * instructions () const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
const ::flatbuffers::Vector< uint64_t > * addresses () const
 addresses of contained instructions in execution order
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::BasicBlock > > * basic_blocks () const
 list of basic blocks with unique starting addresses
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
uint64_t entry_addr () const
 
const ::flatbuffers::Vector< uint64_t > * instructions () const
 non-empty instruction addresses belonging to this function
 
const ::flatbuffers::String * name () const
 optional name for function
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Function > > * functions () const
 list of functions with unique entry addresses
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgePurpose purpose () const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
uint64_t address () const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
uint64_t src () const
 
Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgeTarget tgt_type () const
 
const void * tgt () const
 
template<typename T >
const T * tgt_as () const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::AddressTarget * tgt_as_AddressTarget () const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::IndeterminateTarget * tgt_as_IndeterminateTarget () const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgeData * data () const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdge > > * edges () const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::Architecture * architecture () const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::MemoryMap * memory_map () const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::InstructionList * instructions () const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::BasicBlockList * basic_blocks () const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::FunctionList * functions () const
 
const Rose::BinaryAnalysis::Serialization::FlatBuffers::Cfg * cfg () const
 
bool Verify (::flatbuffers::Verifier &verifier) const
 

Member Typedef Documentation

◆ Builder [1/15]

Definition at line 251 of file FlatBufferSchema.h.

◆ Builder [2/15]

Definition at line 302 of file FlatBufferSchema.h.

◆ Builder [3/15]

Definition at line 394 of file FlatBufferSchema.h.

◆ Builder [4/15]

Definition at line 463 of file FlatBufferSchema.h.

◆ Builder [5/15]

Definition at line 558 of file FlatBufferSchema.h.

◆ Builder [6/15]

Definition at line 616 of file FlatBufferSchema.h.

◆ Builder [7/15]

Definition at line 670 of file FlatBufferSchema.h.

◆ Builder [8/15]

Definition at line 727 of file FlatBufferSchema.h.

◆ Builder [9/15]

Definition at line 808 of file FlatBufferSchema.h.

◆ Builder [10/15]

Definition at line 863 of file FlatBufferSchema.h.

◆ Builder [11/15]

Definition at line 908 of file FlatBufferSchema.h.

◆ Builder [12/15]

Definition at line 950 of file FlatBufferSchema.h.

◆ Builder [13/15]

Definition at line 981 of file FlatBufferSchema.h.

◆ Builder [14/15]

Definition at line 1076 of file FlatBufferSchema.h.

◆ Builder [15/15]

Definition at line 1134 of file FlatBufferSchema.h.

Member Function Documentation

◆ name() [1/3]

const ::flatbuffers::String * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::name ( ) const
inline

Definition at line 255 of file FlatBufferSchema.h.

◆ Verify() [1/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 258 of file FlatBufferSchema.h.

◆ address() [1/3]

uint64_t Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::address ( ) const
inline

Definition at line 309 of file FlatBufferSchema.h.

◆ bytes() [1/2]

const ::flatbuffers::Vector< uint8_t > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::bytes ( ) const
inline

Definition at line 312 of file FlatBufferSchema.h.

◆ accessibility()

uint8_t Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::accessibility ( ) const
inline

Accessibility bits OR'd together.

Definition at line 316 of file FlatBufferSchema.h.

◆ name() [2/3]

const ::flatbuffers::String * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::name ( ) const
inline

optional name

Definition at line 320 of file FlatBufferSchema.h.

◆ Verify() [2/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 323 of file FlatBufferSchema.h.

◆ endianness()

Rose::BinaryAnalysis::Serialization::FlatBuffers::Endianness Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::endianness ( ) const
inline

Definition at line 399 of file FlatBufferSchema.h.

◆ segments()

const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Segment > > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::segments ( ) const
inline

Definition at line 402 of file FlatBufferSchema.h.

◆ Verify() [3/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 405 of file FlatBufferSchema.h.

◆ address() [2/3]

uint64_t Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::address ( ) const
inline

Definition at line 470 of file FlatBufferSchema.h.

◆ bytes() [2/2]

const ::flatbuffers::Vector< uint8_t > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::bytes ( ) const
inline

Definition at line 473 of file FlatBufferSchema.h.

◆ mnemonic()

const ::flatbuffers::String * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::mnemonic ( ) const
inline

optional mnemonic

Definition at line 477 of file FlatBufferSchema.h.

◆ operands()

const ::flatbuffers::String * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::operands ( ) const
inline

optional operands

Definition at line 481 of file FlatBufferSchema.h.

◆ Verify() [4/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 484 of file FlatBufferSchema.h.

◆ instructions() [1/3]

const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Instruction > > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::instructions ( ) const
inline

Definition at line 562 of file FlatBufferSchema.h.

◆ Verify() [5/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 565 of file FlatBufferSchema.h.

◆ addresses()

const ::flatbuffers::Vector< uint64_t > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::addresses ( ) const
inline

addresses of contained instructions in execution order

Definition at line 621 of file FlatBufferSchema.h.

◆ Verify() [6/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 624 of file FlatBufferSchema.h.

◆ basic_blocks() [1/2]

const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::BasicBlock > > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::basic_blocks ( ) const
inline

list of basic blocks with unique starting addresses

Definition at line 675 of file FlatBufferSchema.h.

◆ Verify() [7/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 678 of file FlatBufferSchema.h.

◆ entry_addr()

uint64_t Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::entry_addr ( ) const
inline

Definition at line 733 of file FlatBufferSchema.h.

◆ instructions() [2/3]

const ::flatbuffers::Vector< uint64_t > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::instructions ( ) const
inline

non-empty instruction addresses belonging to this function

Definition at line 737 of file FlatBufferSchema.h.

◆ name() [3/3]

const ::flatbuffers::String * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::name ( ) const
inline

optional name for function

Definition at line 741 of file FlatBufferSchema.h.

◆ Verify() [8/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 744 of file FlatBufferSchema.h.

◆ functions() [1/2]

const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::Function > > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::functions ( ) const
inline

list of functions with unique entry addresses

Definition at line 813 of file FlatBufferSchema.h.

◆ Verify() [9/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 816 of file FlatBufferSchema.h.

◆ purpose()

Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgePurpose Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::purpose ( ) const
inline

Definition at line 867 of file FlatBufferSchema.h.

◆ Verify() [10/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 870 of file FlatBufferSchema.h.

◆ address() [3/3]

uint64_t Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::address ( ) const
inline

Definition at line 912 of file FlatBufferSchema.h.

◆ Verify() [11/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 915 of file FlatBufferSchema.h.

◆ Verify() [12/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 951 of file FlatBufferSchema.h.

◆ src()

uint64_t Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::src ( ) const
inline

Definition at line 988 of file FlatBufferSchema.h.

◆ tgt_type()

Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgeTarget Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::tgt_type ( ) const
inline

Definition at line 991 of file FlatBufferSchema.h.

◆ tgt()

const void * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::tgt ( ) const
inline

Definition at line 994 of file FlatBufferSchema.h.

◆ tgt_as_AddressTarget()

const Rose::BinaryAnalysis::Serialization::FlatBuffers::AddressTarget * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::tgt_as_AddressTarget ( ) const
inline

Definition at line 998 of file FlatBufferSchema.h.

◆ tgt_as_IndeterminateTarget()

const Rose::BinaryAnalysis::Serialization::FlatBuffers::IndeterminateTarget * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::tgt_as_IndeterminateTarget ( ) const
inline

Definition at line 1001 of file FlatBufferSchema.h.

◆ data()

const Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdgeData * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::data ( ) const
inline

Definition at line 1004 of file FlatBufferSchema.h.

◆ Verify() [13/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 1007 of file FlatBufferSchema.h.

◆ edges()

const ::flatbuffers::Vector<::flatbuffers::Offset< Rose::BinaryAnalysis::Serialization::FlatBuffers::CfgEdge > > * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::edges ( ) const
inline

Definition at line 1080 of file FlatBufferSchema.h.

◆ Verify() [14/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 1083 of file FlatBufferSchema.h.

◆ architecture()

const Rose::BinaryAnalysis::Serialization::FlatBuffers::Architecture * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::architecture ( ) const
inline

Definition at line 1143 of file FlatBufferSchema.h.

◆ memory_map()

const Rose::BinaryAnalysis::Serialization::FlatBuffers::MemoryMap * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::memory_map ( ) const
inline

Definition at line 1146 of file FlatBufferSchema.h.

◆ instructions() [3/3]

const Rose::BinaryAnalysis::Serialization::FlatBuffers::InstructionList * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::instructions ( ) const
inline

Definition at line 1149 of file FlatBufferSchema.h.

◆ basic_blocks() [2/2]

const Rose::BinaryAnalysis::Serialization::FlatBuffers::BasicBlockList * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::basic_blocks ( ) const
inline

Definition at line 1152 of file FlatBufferSchema.h.

◆ functions() [2/2]

const Rose::BinaryAnalysis::Serialization::FlatBuffers::FunctionList * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::functions ( ) const
inline

Definition at line 1155 of file FlatBufferSchema.h.

◆ cfg()

const Rose::BinaryAnalysis::Serialization::FlatBuffers::Cfg * Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::cfg ( ) const
inline

Definition at line 1158 of file FlatBufferSchema.h.

◆ Verify() [15/15]

bool Rose::BinaryAnalysis::Serialization::FlatBuffers::FLATBUFFERS_FINAL_CLASS::Verify ( ::flatbuffers::Verifier &  verifier) const
inline

Definition at line 1161 of file FlatBufferSchema.h.


The documentation for this struct was generated from the following file: