ROSE 0.11.145.192
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Rose::BinaryAnalysis::Partitioner2::ThunkPredicates Class Reference

Description

List of thunk predicates.

Definition at line 84 of file Thunk.h.

#include <Rose/BinaryAnalysis/Partitioner2/Thunk.h>

Inheritance diagram for Rose::BinaryAnalysis::Partitioner2::ThunkPredicates:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::Partitioner2::ThunkPredicates:
Collaboration graph
[legend]

Public Types

typedef Sawyer::SharedPointer< ThunkPredicatesPtr
 

Public Member Functions

ThunkDetection isThunk (const PartitionerConstPtr &, const std::vector< SgAsmInstruction * > &) const
 Test whether instructions begin with a thunk.
 
const std::vector< ThunkPredicate > & predicates () const
 Property: The list of predicates that will test for thunks.
 
std::vector< ThunkPredicate > & predicates ()
 Property: The list of predicates that will test for thunks.
 
- Public Member Functions inherited from Sawyer::SharedObject
 SharedObject ()
 Default constructor.
 
 SharedObject (const SharedObject &)
 Copy constructor.
 
virtual ~SharedObject ()
 Virtual destructor.
 
SharedObjectoperator= (const SharedObject &)
 Assignment.
 

Static Public Member Functions

static Ptr instance ()
 Allocating constructor.
 
static Ptr allThunks ()
 Construct collective predicate with all built-in predicates.
 
static Ptr functionMatcherThunks ()
 Construct collective predicate for matching thunks to create functions.
 

Member Typedef Documentation

◆ Ptr

Definition at line 86 of file Thunk.h.

Constructor & Destructor Documentation

◆ ThunkPredicates()

Rose::BinaryAnalysis::Partitioner2::ThunkPredicates::ThunkPredicates ( )
inlineprotected

Definition at line 94 of file Thunk.h.

Member Function Documentation

◆ instance()

static Ptr Rose::BinaryAnalysis::Partitioner2::ThunkPredicates::instance ( )
inlinestatic

Allocating constructor.

Definition at line 98 of file Thunk.h.

◆ allThunks()

static Ptr Rose::BinaryAnalysis::Partitioner2::ThunkPredicates::allThunks ( )
static

Construct collective predicate with all built-in predicates.

Returns a collective predicate that contains all the built-in predicates known to this library.

◆ functionMatcherThunks()

static Ptr Rose::BinaryAnalysis::Partitioner2::ThunkPredicates::functionMatcherThunks ( )
static

Construct collective predicate for matching thunks to create functions.

Constructs a collective predicate that contains individual predicates that are suitable for finding thunks when scanning memory to find new function prologues.

◆ predicates() [1/2]

const std::vector< ThunkPredicate > & Rose::BinaryAnalysis::Partitioner2::ThunkPredicates::predicates ( ) const
inline

Property: The list of predicates that will test for thunks.

Definition at line 116 of file Thunk.h.

◆ predicates() [2/2]

std::vector< ThunkPredicate > & Rose::BinaryAnalysis::Partitioner2::ThunkPredicates::predicates ( )
inline

Property: The list of predicates that will test for thunks.

Definition at line 117 of file Thunk.h.

◆ isThunk()

ThunkDetection Rose::BinaryAnalysis::Partitioner2::ThunkPredicates::isThunk ( const PartitionerConstPtr ,
const std::vector< SgAsmInstruction * > &   
) const

Test whether instructions begin with a thunk.

Returns non-zero if the specified list of instructions begins with what appears to be a thunk. The return value is the number of leading instructions that are part of the thunk and the name of the thunk detector that matched. The determination is made by invoking each predicate from the predicates list in the order of that list and returning the value returned by the first predicate that returns non-zero.


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