GTIRB
v2.2.0
GrammaTech Intermediate Representation for Binaries: C++ API
|
Represents a named section of the binary. More...
#include <Section.hpp>
Public Types | |
using | block_iterator = MergeSortedIterator< ByteInterval::block_iterator, BlockAddressLess > |
Iterator over blocks. More... | |
using | block_range = boost::iterator_range< block_iterator > |
Range of blocks. More... | |
using | block_subrange = boost::iterator_range< MergeSortedIterator< ByteInterval::block_subrange::iterator, BlockAddressLess > > |
Sub-range of blocks overlapping an address or range of addreses. More... | |
using | byte_interval_iterator = boost::indirect_iterator< ByteIntervalSet::iterator > |
Iterator over ByteInterval objects. More... | |
using | byte_interval_range = boost::iterator_range< byte_interval_iterator > |
Range of ByteInterval objects. More... | |
using | byte_interval_subrange = boost::iterator_range< boost::indirect_iterator< ByteIntervalIntMap::codomain_type::iterator > > |
Sub-range of ByteInterval objects overlapping addresses. More... | |
using | code_block_iterator = MergeSortedIterator< ByteInterval::code_block_iterator, AddressLess > |
Iterator over CodeBlock objects. More... | |
using | code_block_range = boost::iterator_range< code_block_iterator > |
Range of CodeBlock objects. More... | |
using | code_block_subrange = boost::iterator_range< MergeSortedIterator< ByteInterval::code_block_subrange::iterator, AddressLess > > |
Sub-range of CodeBlock objects overlapping an address or range of addreses. More... | |
using | const_block_iterator = MergeSortedIterator< ByteInterval::const_block_iterator, BlockAddressLess > |
Const iterator over blocks. More... | |
using | const_block_range = boost::iterator_range< const_block_iterator > |
Const range of blocks. More... | |
using | const_block_subrange = boost::iterator_range< MergeSortedIterator< ByteInterval::const_block_subrange::iterator, BlockAddressLess > > |
Const sub-range of blocks overlapping an address or range of addreses. More... | |
using | const_byte_interval_iterator = boost::indirect_iterator< ByteIntervalSet::const_iterator, const ByteInterval > |
Const iterator over ByteInterval objects. More... | |
using | const_byte_interval_range = boost::iterator_range< const_byte_interval_iterator > |
Const range of ByteInterval objects. More... | |
using | const_byte_interval_subrange = boost::iterator_range< boost::indirect_iterator< ByteIntervalIntMap::codomain_type::const_iterator > > |
Const sub-range of ByteInterval objects overlapping addresses. More... | |
using | const_code_block_iterator = MergeSortedIterator< ByteInterval::const_code_block_iterator, AddressLess > |
Iterator over CodeBlock objects. More... | |
using | const_code_block_range = boost::iterator_range< const_code_block_iterator > |
Range of CodeBlock objects. More... | |
using | const_code_block_subrange = boost::iterator_range< MergeSortedIterator< ByteInterval::const_code_block_subrange::iterator, AddressLess > > |
Sub-range of CodeBlock objects overlapping an address or range of addreses. More... | |
using | const_data_block_iterator = MergeSortedIterator< ByteInterval::const_data_block_iterator, AddressLess > |
Iterator over DataBlock objects. More... | |
using | const_data_block_range = boost::iterator_range< const_data_block_iterator > |
Range of DataBlock objects. More... | |
using | const_data_block_subrange = boost::iterator_range< MergeSortedIterator< ByteInterval::const_data_block_subrange::iterator, AddressLess > > |
Sub-range of DataBlock objects overlapping an address or range of addreses. More... | |
using | const_section_flag_iterator = std::set< SectionFlag >::const_iterator |
Iterator over SectionFlag flags. More... | |
using | const_section_flag_range = boost::iterator_range< const_section_flag_iterator > |
Range of SectionFlag flags. More... | |
using | const_symbolic_expression_iterator = MergeSortedIterator< ByteInterval::const_symbolic_expression_iterator, ByteInterval::ConstSymbolicExpressionElement::AddressLess > |
Iterator over SymbolicExpressionElement objects. More... | |
using | const_symbolic_expression_range = boost::iterator_range< const_symbolic_expression_iterator > |
Range of SymbolicExpressionElement objects. More... | |
using | data_block_iterator = MergeSortedIterator< ByteInterval::data_block_iterator, AddressLess > |
Iterator over DataBlock objects. More... | |
using | data_block_range = boost::iterator_range< data_block_iterator > |
Range of DataBlock objects. More... | |
using | data_block_subrange = boost::iterator_range< MergeSortedIterator< ByteInterval::data_block_subrange::iterator, AddressLess > > |
Sub-range of DataBlock objects overlapping an address or range of addreses. More... | |
using | symbolic_expression_iterator = MergeSortedIterator< ByteInterval::symbolic_expression_iterator, ByteInterval::SymbolicExpressionElement::AddressLess > |
Iterator over SymbolicExpressionElement objects. More... | |
using | symbolic_expression_range = boost::iterator_range< symbolic_expression_iterator > |
Range of SymbolicExpressionElement objects. More... | |
Public Member Functions | |
ChangeStatus | addByteInterval (ByteInterval *BI) |
Move an existing ByteInterval to be a part of this section. More... | |
template<typename... Args> | |
ByteInterval * | addByteInterval (Context &C, Args &&... A) |
Creates a new ByteInterval in this section. More... | |
void | addFlag (SectionFlag F) |
Adds the flag to the Section. More... | |
template<typename... Fs> | |
void | addFlags (Fs... F) |
Adds all of the flags to the Section. More... | |
block_range | blocks () |
Return a range of all the blocks. More... | |
const_block_range | blocks () const |
Return a range of all the blocks. More... | |
block_iterator | blocks_begin () |
Return an iterator to the first block. More... | |
const_block_iterator | blocks_begin () const |
Return an iterator to the first block. More... | |
block_iterator | blocks_end () |
Return an iterator to the element following the last block. More... | |
const_block_iterator | blocks_end () const |
Return an iterator to the element following the last block. More... | |
byte_interval_range | byte_intervals () |
Return a range of the ByteInterval objects in this section. More... | |
const_byte_interval_range | byte_intervals () const |
Return a const range of the ByteInterval objects in this section. More... | |
byte_interval_iterator | byte_intervals_begin () |
Return an iterator to the first ByteInterval. More... | |
const_byte_interval_iterator | byte_intervals_begin () const |
Return a const iterator to the first ByteInterval. More... | |
byte_interval_iterator | byte_intervals_end () |
Return an iterator to the element following the last ByteInterval. More... | |
const_byte_interval_iterator | byte_intervals_end () const |
Return a const iterator to the element following the last ByteInterval. More... | |
code_block_range | code_blocks () |
Return a range of all the CodeBlock objects. More... | |
const_code_block_range | code_blocks () const |
Return a range of all the CodeBlock objects. More... | |
code_block_iterator | code_blocks_begin () |
Return an iterator to the first CodeBlock. More... | |
const_code_block_iterator | code_blocks_begin () const |
Return an iterator to the first CodeBlock. More... | |
code_block_iterator | code_blocks_end () |
Return an iterator to the element following the last CodeBlock. More... | |
const_code_block_iterator | code_blocks_end () const |
Return an iterator to the element following the last CodeBlock. More... | |
data_block_range | data_blocks () |
Return a range of all the DataBlock objects. More... | |
const_data_block_range | data_blocks () const |
Return a range of all the DataBlock objects. More... | |
data_block_iterator | data_blocks_begin () |
Return an iterator to the first DataBlock. More... | |
const_data_block_iterator | data_blocks_begin () const |
Return an iterator to the first DataBlock. More... | |
data_block_iterator | data_blocks_end () |
Return an iterator to the element following the last DataBlock. More... | |
const_data_block_iterator | data_blocks_end () const |
Return an iterator to the element following the last DataBlock. More... | |
block_range | findBlocksAt (Addr A) |
Find all the blocks that start at an address. More... | |
const_block_range | findBlocksAt (Addr A) const |
Find all the blocks that start at an address. More... | |
block_range | findBlocksAt (Addr Low, Addr High) |
Find all the blocks that start between a range of addresses. More... | |
const_block_range | findBlocksAt (Addr Low, Addr High) const |
Find all the blocks that start between a range of addresses. More... | |
block_subrange | findBlocksOn (Addr A) |
Find all the blocks that have bytes that lie within the address specified. More... | |
const_block_subrange | findBlocksOn (Addr A) const |
Find all the blocks that have bytes that lie within the address specified. More... | |
byte_interval_range | findByteIntervalsAt (Addr A) |
Find all the intervals that start at an address. More... | |
const_byte_interval_range | findByteIntervalsAt (Addr A) const |
Find all the intervals that start at an address. More... | |
byte_interval_range | findByteIntervalsAt (Addr Low, Addr High) |
Find all the intervals that start between a range of addresses. More... | |
const_byte_interval_range | findByteIntervalsAt (Addr Low, Addr High) const |
Find all the intervals that start between a range of addresses. More... | |
byte_interval_subrange | findByteIntervalsOn (Addr A) |
Find all the intervals that have bytes that lie within the address specified. More... | |
const_byte_interval_subrange | findByteIntervalsOn (Addr A) const |
Find all the intervals that have bytes that lie within the address specified. More... | |
code_block_range | findCodeBlocksAt (Addr A) |
Find all the code blocks that start at an address. More... | |
const_code_block_range | findCodeBlocksAt (Addr A) const |
Find all the code blocks that start at an address. More... | |
code_block_range | findCodeBlocksAt (Addr Low, Addr High) |
Find all the code blocks that start between a range of addresses. More... | |
const_code_block_range | findCodeBlocksAt (Addr Low, Addr High) const |
Find all the code blocks that start between a range of addresses. More... | |
code_block_subrange | findCodeBlocksOn (Addr A) |
Find all the code blocks that have bytes that lie within the address specified. More... | |
const_code_block_subrange | findCodeBlocksOn (Addr A) const |
Find all the code blocks that have bytes that lie within the address specified. More... | |
data_block_range | findDataBlocksAt (Addr A) |
Find all the data blocks that start at an address. More... | |
const_data_block_range | findDataBlocksAt (Addr A) const |
Find all the data blocks that start at an address. More... | |
data_block_range | findDataBlocksAt (Addr Low, Addr High) |
Find all the data blocks that start between a range of addresses. More... | |
const_data_block_range | findDataBlocksAt (Addr Low, Addr High) const |
Find all the data blocks that start between a range of addresses. More... | |
data_block_subrange | findDataBlocksOn (Addr A) |
Find all the data blocks that have bytes that lie within the address specified. More... | |
const_data_block_subrange | findDataBlocksOn (Addr A) const |
Find all the data blocks that have bytes that lie within the address specified. More... | |
symbolic_expression_range | findSymbolicExpressionsAt (Addr A) |
Find all the symbolic expressions that start at an address. More... | |
const_symbolic_expression_range | findSymbolicExpressionsAt (Addr A) const |
Find all the symbolic expressions that start at an address. More... | |
symbolic_expression_range | findSymbolicExpressionsAt (Addr Low, Addr High) |
Find all the symbolic expressions that start between a range of addresses. More... | |
const_symbolic_expression_range | findSymbolicExpressionsAt (Addr Low, Addr High) const |
Find all the symbolic expressions that start between a range of addresses. More... | |
const_section_flag_range | flags () const |
Return a range of the SectionFlag flags set for the Section. More... | |
const_section_flag_iterator | flags_begin () const |
Return a const iterator to the first SectionFlag. More... | |
const_section_flag_iterator | flags_end () const |
Return a const iterator to the element following the last SectionFlag. More... | |
std::optional< Addr > | getAddress () const |
Return the address of this section, if known. More... | |
Module * | getModule () |
Get the Module this section belongs to. More... | |
const Module * | getModule () const |
Get the Module this section belongs to. More... | |
const std::string & | getName () const |
Get the name of a Section. More... | |
std::optional< uint64_t > | getSize () const |
Return the size of this section, if known. More... | |
bool | isFlagSet (SectionFlag F) const |
Tests whether the given flag is set for the Section. More... | |
bool | operator!= (const Section &Other) const |
Inequality operator overload. More... | |
bool | operator== (const Section &Other) const |
Equality operator overload. More... | |
ChangeStatus | removeByteInterval (ByteInterval *N) |
Remove an interval from this section. More... | |
void | removeFlag (SectionFlag F) |
Removes the flag from the Section. More... | |
void | setName (const std::string &N) |
Set this section's name. More... | |
symbolic_expression_range | symbolic_expressions () |
Return a range of all the SymbolicExpression objects. More... | |
const_symbolic_expression_range | symbolic_expressions () const |
Return a range of all the SymbolicExpression objects. More... | |
symbolic_expression_iterator | symbolic_expressions_begin () |
Return an iterator to the first SymbolicExpression. More... | |
const_symbolic_expression_iterator | symbolic_expressions_begin () const |
Return an iterator to the first SymbolicExpression. More... | |
symbolic_expression_iterator | symbolic_expressions_end () |
Return an iterator to the element following the last SymbolicExpression. More... | |
const_symbolic_expression_iterator | symbolic_expressions_end () const |
Return an iterator to the element following the last SymbolicExpression. More... | |
Public Member Functions inherited from gtirb::Node | |
Node (const Node &)=delete | |
Copying Nodes is explicitly disabled. More... | |
Node (Node &&)=delete | |
Move-constructing Nodes is explicitly disabled. More... | |
~Node () noexcept | |
Cleans up resources no longer needed by the Node object. More... | |
const UUID & | getUUID () const |
Get the Universally Unique ID (UUID) for this . More... | |
Node & | operator= (const Node &)=delete |
Copying Nodes is explicilty disabled. More... | |
Node & | operator= (Node &&)=delete |
Move-assigning Nodes is explicilty disabled. More... | |
Static Public Member Functions | |
static Section * | Create (Context &C) |
Create an unitialized Section object. More... | |
static Section * | Create (Context &C, const std::string &Name) |
Create a Section object. More... | |
Static Public Member Functions inherited from gtirb::Node | |
static Node * | Create (Context &C) |
Create a Node object in its default state. More... | |
static const Node * | getByUUID (const Context &C, const UUID &Uuid) |
Retrieve a node by its UUID. More... | |
static Node * | getByUUID (Context &C, const UUID &Uuid) |
Retrieve a node by its UUID. More... | |
Friends | |
class | Context |
class | Module |
class | SerializationTestHarness |
template<typename T > | |
T::MessageType | toProtobuf (const T &) |
Represents a named section of the binary.
Does not directly store the contents of the section, which are kept in ImageByteMap.
using gtirb::Section::block_iterator = MergeSortedIterator<ByteInterval::block_iterator, BlockAddressLess> |
Iterator over blocks.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::block_range = boost::iterator_range<block_iterator> |
Range of blocks.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::block_subrange = boost::iterator_range<MergeSortedIterator< ByteInterval::block_subrange::iterator, BlockAddressLess> > |
Sub-range of blocks overlapping an address or range of addreses.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::byte_interval_iterator = boost::indirect_iterator<ByteIntervalSet::iterator> |
Iterator over ByteInterval objects.
using gtirb::Section::byte_interval_range = boost::iterator_range<byte_interval_iterator> |
Range of ByteInterval objects.
using gtirb::Section::byte_interval_subrange = boost::iterator_range< boost::indirect_iterator<ByteIntervalIntMap::codomain_type::iterator> > |
Sub-range of ByteInterval objects overlapping addresses.
using gtirb::Section::code_block_iterator = MergeSortedIterator<ByteInterval::code_block_iterator, AddressLess> |
Iterator over CodeBlock objects.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::code_block_range = boost::iterator_range<code_block_iterator> |
Range of CodeBlock objects.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::code_block_subrange = boost::iterator_range<MergeSortedIterator< ByteInterval::code_block_subrange::iterator, AddressLess> > |
Sub-range of CodeBlock objects overlapping an address or range of addreses.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_block_iterator = MergeSortedIterator<ByteInterval::const_block_iterator, BlockAddressLess> |
Const iterator over blocks.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_block_range = boost::iterator_range<const_block_iterator> |
Const range of blocks.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_block_subrange = boost::iterator_range<MergeSortedIterator< ByteInterval::const_block_subrange::iterator, BlockAddressLess> > |
Const sub-range of blocks overlapping an address or range of addreses.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_byte_interval_iterator = boost::indirect_iterator<ByteIntervalSet::const_iterator, const ByteInterval> |
Const iterator over ByteInterval objects.
using gtirb::Section::const_byte_interval_range = boost::iterator_range<const_byte_interval_iterator> |
Const range of ByteInterval objects.
using gtirb::Section::const_byte_interval_subrange = boost::iterator_range<boost::indirect_iterator< ByteIntervalIntMap::codomain_type::const_iterator> > |
Const sub-range of ByteInterval objects overlapping addresses.
using gtirb::Section::const_code_block_iterator = MergeSortedIterator<ByteInterval::const_code_block_iterator, AddressLess> |
Iterator over CodeBlock objects.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_code_block_range = boost::iterator_range<const_code_block_iterator> |
Range of CodeBlock objects.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_code_block_subrange = boost::iterator_range<MergeSortedIterator< ByteInterval::const_code_block_subrange::iterator, AddressLess> > |
Sub-range of CodeBlock objects overlapping an address or range of addreses.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_data_block_iterator = MergeSortedIterator<ByteInterval::const_data_block_iterator, AddressLess> |
Iterator over DataBlock objects.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_data_block_range = boost::iterator_range<const_data_block_iterator> |
Range of DataBlock objects.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_data_block_subrange = boost::iterator_range<MergeSortedIterator< ByteInterval::const_data_block_subrange::iterator, AddressLess> > |
Sub-range of DataBlock objects overlapping an address or range of addreses.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::const_section_flag_iterator = std::set<SectionFlag>::const_iterator |
Iterator over SectionFlag flags.
using gtirb::Section::const_section_flag_range = boost::iterator_range<const_section_flag_iterator> |
Range of SectionFlag flags.
using gtirb::Section::const_symbolic_expression_iterator = MergeSortedIterator< ByteInterval::const_symbolic_expression_iterator, ByteInterval::ConstSymbolicExpressionElement::AddressLess> |
Iterator over SymbolicExpressionElement objects.
Results are yielded in address order, ascending.
using gtirb::Section::const_symbolic_expression_range = boost::iterator_range<const_symbolic_expression_iterator> |
Range of SymbolicExpressionElement objects.
Results are yielded in address order, ascending.
using gtirb::Section::data_block_iterator = MergeSortedIterator<ByteInterval::data_block_iterator, AddressLess> |
Iterator over DataBlock objects.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::data_block_range = boost::iterator_range<data_block_iterator> |
Range of DataBlock objects.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::data_block_subrange = boost::iterator_range<MergeSortedIterator< ByteInterval::data_block_subrange::iterator, AddressLess> > |
Sub-range of DataBlock objects overlapping an address or range of addreses.
Blocks are yielded in address order, ascending. For more details, see the documentation on iteration order.
using gtirb::Section::symbolic_expression_iterator = MergeSortedIterator<ByteInterval::symbolic_expression_iterator, ByteInterval::SymbolicExpressionElement::AddressLess> |
Iterator over SymbolicExpressionElement objects.
Results are yielded in address order, ascending.
using gtirb::Section::symbolic_expression_range = boost::iterator_range<symbolic_expression_iterator> |
Range of SymbolicExpressionElement objects.
Results are yielded in address order, ascending.
ChangeStatus gtirb::Section::addByteInterval | ( | ByteInterval * | BI | ) |
Move an existing ByteInterval to be a part of this section.
Accepted
), was unnecessary because this node already contained the ByteInterval (NoChange
), or could not be completed (Rejected
).
|
inline |
Creates a new ByteInterval in this section.
Args | The arguments to construct a ByteInterval. |
C | The Context in which this object will be held. |
A | The arguments to construct a ByteInterval. |
|
inline |
Adds the flag to the Section.
F | The flag to be added. |
|
inline |
Adds all of the flags to the Section.
Fs | A pack of SectionFlag flags. |
F | The flags to be added to the Section. |
|
inline |
Return a range of all the blocks.
|
inline |
Return a range of all the blocks.
|
inline |
Return an iterator to the first block.
|
inline |
Return an iterator to the first block.
|
inline |
Return an iterator to the element following the last block.
|
inline |
Return an iterator to the element following the last block.
|
inline |
Return a range of the ByteInterval objects in this section.
|
inline |
Return a const range of the ByteInterval objects in this section.
|
inline |
Return an iterator to the first ByteInterval.
|
inline |
Return a const iterator to the first ByteInterval.
|
inline |
Return an iterator to the element following the last ByteInterval.
|
inline |
Return a const iterator to the element following the last ByteInterval.
|
inline |
Return a range of all the CodeBlock objects.
|
inline |
Return a range of all the CodeBlock objects.
|
inline |
Return an iterator to the first CodeBlock.
|
inline |
Return an iterator to the first CodeBlock.
|
inline |
Return an iterator to the element following the last CodeBlock.
|
inline |
Return an iterator to the element following the last CodeBlock.
|
inline |
Return a range of all the DataBlock objects.
|
inline |
Return a range of all the DataBlock objects.
|
inline |
Return an iterator to the first DataBlock.
|
inline |
Return an iterator to the first DataBlock.
|
inline |
Return an iterator to the element following the last DataBlock.
|
inline |
Return an iterator to the element following the last DataBlock.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Find all the intervals that start at an address.
A | The address to look up. |
A
.
|
inline |
Find all the intervals that start at an address.
A | The address to look up. |
A
.
|
inline |
Find all the intervals that start between a range of addresses.
Low | The low address, inclusive. |
High | The high address, exclusive. |
|
inline |
Find all the intervals that start between a range of addresses.
Low | The low address, inclusive. |
High | The high address, exclusive. |
|
inline |
Find all the intervals that have bytes that lie within the address specified.
A | The address to look up. |
A
.
|
inline |
Find all the intervals that have bytes that lie within the address specified.
A | The address to look up. |
A
.
|
inline |
Find all the code blocks that start at an address.
A | The address to look up. |
A
.
|
inline |
Find all the code blocks that start at an address.
A | The address to look up. |
A
.
|
inline |
Find all the code blocks that start between a range of addresses.
Low | The low address, inclusive. |
High | The high address, exclusive. |
|
inline |
Find all the code blocks that start between a range of addresses.
Low | The low address, inclusive. |
High | The high address, exclusive. |
|
inline |
Find all the code blocks that have bytes that lie within the address specified.
A | The address to look up. |
A
.
|
inline |
Find all the code blocks that have bytes that lie within the address specified.
A | The address to look up. |
A
.
|
inline |
Find all the data blocks that start at an address.
A | The address to look up. |
A
.
|
inline |
Find all the data blocks that start at an address.
A | The address to look up. |
A
.
|
inline |
Find all the data blocks that start between a range of addresses.
Low | The low address, inclusive. |
High | The high address, exclusive. |
|
inline |
Find all the data blocks that start between a range of addresses.
Low | The low address, inclusive. |
High | The high address, exclusive. |
|
inline |
Find all the data blocks that have bytes that lie within the address specified.
A | The address to look up. |
A
.
|
inline |
Find all the data blocks that have bytes that lie within the address specified.
A | The address to look up. |
A
.
|
inline |
Find all the symbolic expressions that start at an address.
A | The address to look up. |
A
.
|
inline |
Find all the symbolic expressions that start at an address.
A | The address to look up. |
A
.
|
inline |
Find all the symbolic expressions that start between a range of addresses.
Low | The low address, inclusive. |
High | The high address, exclusive. |
|
inline |
Find all the symbolic expressions that start between a range of addresses.
Low | The low address, inclusive. |
High | The high address, exclusive. |
|
inline |
Return a range of the SectionFlag flags set for the Section.
|
inline |
Return a const iterator to the first SectionFlag.
|
inline |
Return a const iterator to the element following the last SectionFlag.
|
inline |
Return the address of this section, if known.
The address is calculated from the ByteInterval objects in this section. More specifically, if the address of all byte intervals in this section are fixed, then it will return the address of the interval lowest in memory. If any one interval does not have an address, then this function will return std::nullopt, as the address is not calculable in that case. Note that a section with no intervals in it has no address or size, so it will return std::nullopt in that case.
|
inline |
Get the name of a Section.
|
inline |
Return the size of this section, if known.
The size is calculated from the ByteInterval objects in this section. More specifically, if the address of all byte intervals in this section are fixed, then it will return the difference between the lowest and highest address among the intervals. If any one interval does not have an address, then this function will return std::nullopt, as the size is not calculable in that case. Note that a section with no intervals in it has no address or size, so it will return std::nullopt in that case.
|
inline |
Tests whether the given flag is set for the Section.
F | The flag to test. |
bool gtirb::Section::operator!= | ( | const Section & | Other | ) | const |
Inequality operator overload.
bool gtirb::Section::operator== | ( | const Section & | Other | ) | const |
Equality operator overload.
ChangeStatus gtirb::Section::removeByteInterval | ( | ByteInterval * | N | ) |
Remove an interval from this section.
Accepted
), no change was made (NoChange
), or the operation could not be completed (Rejected
). In particular, if the node to remove is not actually part of this node to begin with, the result will be NoChange
.
|
inline |
Removes the flag from the Section.
F | The flag to be removed. |
|
inline |
Set this section's name.
|
inline |
Return a range of all the SymbolicExpression objects.
|
inline |
Return a range of all the SymbolicExpression objects.
|
inline |
Return an iterator to the first SymbolicExpression.
|
inline |
Return an iterator to the first SymbolicExpression.
|
inline |
Return an iterator to the element following the last SymbolicExpression.
|
inline |
Return an iterator to the element following the last SymbolicExpression.
|
friend |
|
friend |
|
friend |
|
friend |