ROSE  0.11.145.0
Public Member Functions | Friends | List of all members
Rose::BinaryAnalysis::Variables::GlobalVariable Class Reference

Description

Description of a global variable.

Definition at line 302 of file Variables.h.

#include <Rose/BinaryAnalysis/Variables.h>

Inheritance diagram for Rose::BinaryAnalysis::Variables::GlobalVariable:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::Variables::GlobalVariable:
Collaboration graph
[legend]

Public Member Functions

 GlobalVariable ()
 Default constructor. More...
 
 GlobalVariable (rose_addr_t startingAddress, rose_addr_t maxSizeBytes, const AddressSet &definingInstructionVas=AddressSet(), const std::string &name="")
 Constructor. More...
 
const std::string & setDefaultName ()
 Give variable a defult name. More...
 
AddressInterval interval () const
 Location of variable in memory. More...
 
 operator bool () const
 Predicate to test whether variable is valid. More...
 
bool operator! () const
 Predicate to test whether variable is invalid. More...
 
rose_addr_t address () const
 Property: Starting address. More...
 
void address (rose_addr_t va)
 Property: Starting address. More...
 
bool operator== (const GlobalVariable &other) const
 Compare two global variable descriptors. More...
 
bool operator!= (const GlobalVariable &other) const
 Compare two global variable descriptors. More...
 
void print (std::ostream &) const
 Printing global variable.
 
std::string toString () const
 Printing global variable.
 
- Public Member Functions inherited from Rose::BinaryAnalysis::Variables::BaseVariable
 BaseVariable (const BaseVariable &)
 
rose_addr_t maxSizeBytes () const
 Property: Maximum variable size in bytes. More...
 
void maxSizeBytes (rose_addr_t size)
 Property: Maximum variable size in bytes. More...
 
const AddressSetdefiningInstructionVas () const
 Property: Addresses of instructions related to this variable. More...
 
AddressSetdefiningInstructionVas ()
 Property: Addresses of instructions related to this variable. More...
 
void definingInstructionVas (const AddressSet &vas)
 Property: Addresses of instructions related to this variable. More...
 
const InstructionSemantics::BaseSemantics::InputOutputPropertySetioProperties () const
 Property: I/O properties. More...
 
InstructionSemantics::BaseSemantics::InputOutputPropertySetioProperties ()
 Property: I/O properties. More...
 
void ioProperties (const InstructionSemantics::BaseSemantics::InputOutputPropertySet &set)
 Property: I/O properties. More...
 
const std::string & name () const
 Property: Optional variable name. More...
 
void name (const std::string &s)
 Property: Optional variable name. More...
 

Friends

std::ostream & operator<< (std::ostream &, const Rose::BinaryAnalysis::Variables::GlobalVariable &)
 Print global variable descriptor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Rose::BinaryAnalysis::Variables::BaseVariable
 BaseVariable ()
 Default constructor. More...
 
 BaseVariable (size_t maxSizeBytes, const AddressSet &definingInstructionVas, const std::string &name)
 Construct a variable with a given maximum size. More...
 

Constructor & Destructor Documentation

Rose::BinaryAnalysis::Variables::GlobalVariable::GlobalVariable ( )

Default constructor.

Constructs a descriptor for an invalid global variable whose maximum size is zero.

Rose::BinaryAnalysis::Variables::GlobalVariable::GlobalVariable ( rose_addr_t  startingAddress,
rose_addr_t  maxSizeBytes,
const AddressSet definingInstructionVas = AddressSet(),
const std::string &  name = "" 
)

Constructor.

Creates a global variable descriptor for a variable whose lowest address is startingAddress and whose maximum size is maxSizeBytes bytes. The optional definingInstructionVas are the addresses of the instructions from which this variable was discerned and are usually memory dereferencing instructions.

Member Function Documentation

rose_addr_t Rose::BinaryAnalysis::Variables::GlobalVariable::address ( ) const

Property: Starting address.

This property is the lowest address for the variable.

void Rose::BinaryAnalysis::Variables::GlobalVariable::address ( rose_addr_t  va)

Property: Starting address.

This property is the lowest address for the variable.

const std::string& Rose::BinaryAnalysis::Variables::GlobalVariable::setDefaultName ( )

Give variable a defult name.

This variable's name is replaced by a generated name and the name is returned.

bool Rose::BinaryAnalysis::Variables::GlobalVariable::operator== ( const GlobalVariable other) const

Compare two global variable descriptors.

Two global variable descriptors are equal if and only if they have the same starting address and maximum size.

Compare two global variable descriptors.

Two global variable descriptors are equal if and only if they have the same starting address and maximum size.

AddressInterval Rose::BinaryAnalysis::Variables::GlobalVariable::interval ( ) const

Location of variable in memory.

Referenced by operator bool(), and operator!().

Rose::BinaryAnalysis::Variables::GlobalVariable::operator bool ( ) const
inlineexplicit

Predicate to test whether variable is valid.

Returns true if the variable is valid, i.e., if it has a non-zero size. Default constructed variables have a zero size.

Definition at line 369 of file Variables.h.

References interval(), and Sawyer::Container::Interval< T >::isEmpty().

bool Rose::BinaryAnalysis::Variables::GlobalVariable::operator! ( ) const
inline

Predicate to test whether variable is invalid.

Returns true if the variable is invalid, i.e., if it has a zero size.

Definition at line 376 of file Variables.h.

References interval(), and Sawyer::Container::Interval< T >::isEmpty().

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  ,
const Rose::BinaryAnalysis::Variables::GlobalVariable  
)
friend

Print global variable descriptor.


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