BinaryNinja::BasicBlock Class Reference

Public Member Functions

 BasicBlock (BNBasicBlock *block)
 
Ref< FunctionGetFunction () const
 
Ref< ArchitectureGetArchitecture () const
 
uint64_t GetStart () const
 
uint64_t GetEnd () const
 
uint64_t GetLength () const
 
size_t GetIndex () const
 
std::vector< BasicBlockEdgeGetOutgoingEdges () const
 
std::vector< BasicBlockEdgeGetIncomingEdges () const
 
bool HasUndeterminedOutgoingEdges () const
 
bool CanExit () const
 
void SetCanExit (bool value)
 
std::set< Ref< BasicBlock > > GetDominators (bool post=false) const
 
std::set< Ref< BasicBlock > > GetStrictDominators (bool post=false) const
 
Ref< BasicBlockGetImmediateDominator (bool post=false) const
 
std::set< Ref< BasicBlock > > GetDominatorTreeChildren (bool post=false) const
 
std::set< Ref< BasicBlock > > GetDominanceFrontier (bool post=false) const
 
void MarkRecentUse ()
 
std::vector< std::vector< InstructionTextToken > > GetAnnotations ()
 
std::vector< DisassemblyTextLineGetDisassemblyText (DisassemblySettings *settings)
 
BNHighlightColor GetBasicBlockHighlight ()
 
void SetAutoBasicBlockHighlight (BNHighlightColor color)
 
void SetAutoBasicBlockHighlight (BNHighlightStandardColor color, uint8_t alpha=255)
 
void SetAutoBasicBlockHighlight (BNHighlightStandardColor color, BNHighlightStandardColor mixColor, uint8_t mix, uint8_t alpha=255)
 
void SetAutoBasicBlockHighlight (uint8_t r, uint8_t g, uint8_t b, uint8_t alpha=255)
 
void SetUserBasicBlockHighlight (BNHighlightColor color)
 
void SetUserBasicBlockHighlight (BNHighlightStandardColor color, uint8_t alpha=255)
 
void SetUserBasicBlockHighlight (BNHighlightStandardColor color, BNHighlightStandardColor mixColor, uint8_t mix, uint8_t alpha=255)
 
void SetUserBasicBlockHighlight (uint8_t r, uint8_t g, uint8_t b, uint8_t alpha=255)
 
bool IsILBlock () const
 
bool IsLowLevelILBlock () const
 
bool IsMediumLevelILBlock () const
 
Ref< LowLevelILFunctionGetLowLevelILFunction () const
 
Ref< MediumLevelILFunctionGetMediumLevelILFunction () const
 
Ref< HighLevelILFunctionGetHighLevelILFunction () const
 
bool GetInstructionContainingAddress (uint64_t addr, uint64_t *start)
 
Ref< BasicBlockGetSourceBlock () const
 
- Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNBasicBlock, BNNewBasicBlockReference, BNFreeBasicBlock >
 CoreRefCountObject ()
 
virtual ~CoreRefCountObject ()
 
BNBasicBlock * GetObject () const
 
void AddRef ()
 
void Release ()
 
void AddRefForRegistration ()
 
void ReleaseForRegistration ()
 

Static Public Member Functions

static std::set< Ref< BasicBlock > > GetIteratedDominanceFrontier (const std::set< Ref< BasicBlock > > &blocks)
 
static bool IsBackEdge (BasicBlock *source, BasicBlock *target)
 
- Static Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNBasicBlock, BNNewBasicBlockReference, BNFreeBasicBlock >
static BNBasicBlock * GetObject (CoreRefCountObject *obj)
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNBasicBlock, BNNewBasicBlockReference, BNFreeBasicBlock >
std::atomic< int > m_refs
 
bool m_registeredRef
 
BNBasicBlock * m_object
 

Constructor & Destructor Documentation

◆ BasicBlock()

BasicBlock::BasicBlock ( BNBasicBlock *  block)

Member Function Documentation

◆ CanExit()

bool BasicBlock::CanExit ( ) const

◆ GetAnnotations()

vector< vector< InstructionTextToken > > BasicBlock::GetAnnotations ( )

◆ GetArchitecture()

Ref< Architecture > BasicBlock::GetArchitecture ( ) const

◆ GetBasicBlockHighlight()

BNHighlightColor BasicBlock::GetBasicBlockHighlight ( )

◆ GetDisassemblyText()

vector< DisassemblyTextLine > BasicBlock::GetDisassemblyText ( DisassemblySettings settings)

◆ GetDominanceFrontier()

set< Ref< BasicBlock > > BasicBlock::GetDominanceFrontier ( bool  post = false) const

◆ GetDominators()

set< Ref< BasicBlock > > BasicBlock::GetDominators ( bool  post = false) const

◆ GetDominatorTreeChildren()

set< Ref< BasicBlock > > BasicBlock::GetDominatorTreeChildren ( bool  post = false) const

◆ GetEnd()

uint64_t BasicBlock::GetEnd ( ) const

◆ GetFunction()

Ref< Function > BasicBlock::GetFunction ( ) const

◆ GetHighLevelILFunction()

Ref< HighLevelILFunction > BasicBlock::GetHighLevelILFunction ( ) const

◆ GetImmediateDominator()

Ref< BasicBlock > BasicBlock::GetImmediateDominator ( bool  post = false) const

◆ GetIncomingEdges()

vector< BasicBlockEdge > BasicBlock::GetIncomingEdges ( ) const

◆ GetIndex()

size_t BasicBlock::GetIndex ( ) const

◆ GetInstructionContainingAddress()

bool BasicBlock::GetInstructionContainingAddress ( uint64_t  addr,
uint64_t *  start 
)

◆ GetIteratedDominanceFrontier()

set< Ref< BasicBlock > > BasicBlock::GetIteratedDominanceFrontier ( const std::set< Ref< BasicBlock > > &  blocks)
static

◆ GetLength()

uint64_t BasicBlock::GetLength ( ) const

◆ GetLowLevelILFunction()

Ref< LowLevelILFunction > BasicBlock::GetLowLevelILFunction ( ) const

◆ GetMediumLevelILFunction()

Ref< MediumLevelILFunction > BasicBlock::GetMediumLevelILFunction ( ) const

◆ GetOutgoingEdges()

vector< BasicBlockEdge > BasicBlock::GetOutgoingEdges ( ) const

◆ GetSourceBlock()

Ref< BasicBlock > BasicBlock::GetSourceBlock ( ) const

◆ GetStart()

uint64_t BasicBlock::GetStart ( ) const

◆ GetStrictDominators()

set< Ref< BasicBlock > > BasicBlock::GetStrictDominators ( bool  post = false) const

◆ HasUndeterminedOutgoingEdges()

bool BasicBlock::HasUndeterminedOutgoingEdges ( ) const

◆ IsBackEdge()

bool BasicBlock::IsBackEdge ( BasicBlock source,
BasicBlock target 
)
static

◆ IsILBlock()

bool BasicBlock::IsILBlock ( ) const

◆ IsLowLevelILBlock()

bool BasicBlock::IsLowLevelILBlock ( ) const

◆ IsMediumLevelILBlock()

bool BasicBlock::IsMediumLevelILBlock ( ) const

◆ MarkRecentUse()

void BasicBlock::MarkRecentUse ( )

◆ SetAutoBasicBlockHighlight() [1/4]

void BasicBlock::SetAutoBasicBlockHighlight ( BNHighlightColor  color)

◆ SetAutoBasicBlockHighlight() [2/4]

void BasicBlock::SetAutoBasicBlockHighlight ( BNHighlightStandardColor  color,
BNHighlightStandardColor  mixColor,
uint8_t  mix,
uint8_t  alpha = 255 
)

◆ SetAutoBasicBlockHighlight() [3/4]

void BasicBlock::SetAutoBasicBlockHighlight ( BNHighlightStandardColor  color,
uint8_t  alpha = 255 
)

◆ SetAutoBasicBlockHighlight() [4/4]

void BasicBlock::SetAutoBasicBlockHighlight ( uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  alpha = 255 
)

◆ SetCanExit()

void BasicBlock::SetCanExit ( bool  value)

◆ SetUserBasicBlockHighlight() [1/4]

void BasicBlock::SetUserBasicBlockHighlight ( BNHighlightColor  color)

◆ SetUserBasicBlockHighlight() [2/4]

void BasicBlock::SetUserBasicBlockHighlight ( BNHighlightStandardColor  color,
BNHighlightStandardColor  mixColor,
uint8_t  mix,
uint8_t  alpha = 255 
)

◆ SetUserBasicBlockHighlight() [3/4]

void BasicBlock::SetUserBasicBlockHighlight ( BNHighlightStandardColor  color,
uint8_t  alpha = 255 
)

◆ SetUserBasicBlockHighlight() [4/4]

void BasicBlock::SetUserBasicBlockHighlight ( uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  alpha = 255 
)

The documentation for this class was generated from the following files: