ROSE  0.11.145.0
Public Member Functions | List of all members
Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol Class Reference

Description

Symbol from .dynsym combined with additional information.

The additional information is:

Definition at line 32 of file BinaryLoaderElf.h.

#include <Rose/BinaryAnalysis/BinaryLoaderElf.h>

Public Member Functions

 VersionedSymbol (SgAsmElfSymbol *symbol)
 
bool isLocal () const
 Returns true if this symbol is visible only locally. More...
 
bool isHidden () const
 Returns true if this symbol is hidden. More...
 
bool isReference () const
 Returns true if this symbol is a reference to an object rather than the definition of the object. More...
 
bool isBaseDefinition () const
 Returns tru if this symbol is a base definition. More...
 
SgAsmElfSymbolSectiongetSection () const
 Returns the symbol section (.dynsym) where this symbol was defined. More...
 
std::string getVersion () const
 Returns the version string of this symbol. More...
 
std::string getName () const
 Returns the name of this symbol. More...
 
std::string getVersionedName () const
 Returns the full, versionioned name of this symbol. More...
 
void versionEntry (SgAsmElfSymverEntry *entry)
 Property: Version pointer for this symbol. More...
 
void print (std::ostream &) const
 Print used by operator<<. More...
 
void dump (FILE *, const char *prefix, ssize_t idx) const
 Dump info like for SgAsm* objects. More...
 
void symbol (SgAsmElfSymbol *symbol)
 Property: The symbol.
 
SgAsmElfSymbolsymbol () const
 Property: The symbol.
 
SgAsmElfSymverDefinedEntryversionDef () const
 Property: Version definition of this symbol. More...
 
void versionDef (SgAsmElfSymverDefinedEntry *def)
 Property: Version definition of this symbol. More...
 
SgAsmElfSymverNeededAuxversionNeed () const
 Property: The version requirement of this symbol. More...
 
void versionNeed (SgAsmElfSymverNeededAux *need)
 Property: The version requirement of this symbol. More...
 

Member Function Documentation

bool Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::isLocal ( ) const

Returns true if this symbol is visible only locally.

bool Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::isHidden ( ) const

Returns true if this symbol is hidden.

bool Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::isReference ( ) const

Returns true if this symbol is a reference to an object rather than the definition of the object.

bool Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::isBaseDefinition ( ) const

Returns tru if this symbol is a base definition.

A base definition is either an unversioned symbol or a version definition with the VER_FLG_BASE flag set.

SgAsmElfSymbolSection* Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::getSection ( ) const
inline

Returns the symbol section (.dynsym) where this symbol was defined.

Definition at line 64 of file BinaryLoaderElf.h.

Referenced by Rose::BinaryAnalysis::BinaryLoaderElf::SymbolMapEntry::getSection().

std::string Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::getVersion ( ) const

Returns the version string of this symbol.

The empty string is returned if the symbol has no associated version.

std::string Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::getName ( ) const
inline

Returns the name of this symbol.

Definition at line 74 of file BinaryLoaderElf.h.

References SgAsmGenericSymbol::get_name(), and SgAsmGenericString::get_string().

std::string Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::getVersionedName ( ) const

Returns the full, versionioned name of this symbol.

Used for debugging.

void Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::versionEntry ( SgAsmElfSymverEntry entry)
inline

Property: Version pointer for this symbol.

Definition at line 82 of file BinaryLoaderElf.h.

SgAsmElfSymverDefinedEntry* Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::versionDef ( ) const
inline

Property: Version definition of this symbol.

The definition flags must be zero or VER_FLG_BASE.

Definition at line 91 of file BinaryLoaderElf.h.

void Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::versionDef ( SgAsmElfSymverDefinedEntry def)
inline

Property: Version definition of this symbol.

The definition flags must be zero or VER_FLG_BASE.

Definition at line 94 of file BinaryLoaderElf.h.

References SgAsmElfSymverDefinedEntry::get_flags().

SgAsmElfSymverNeededAux* Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::versionNeed ( ) const
inline

Property: The version requirement of this symbol.

The requirement flags must be zero or VER_FLG_WEAK.

Definition at line 105 of file BinaryLoaderElf.h.

void Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::versionNeed ( SgAsmElfSymverNeededAux need)
inline

Property: The version requirement of this symbol.

The requirement flags must be zero or VER_FLG_WEAK.

Definition at line 108 of file BinaryLoaderElf.h.

References SgAsmElfSymverNeededAux::get_flags().

void Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::print ( std::ostream &  ) const

Print used by operator<<.

void Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::dump ( FILE *  ,
const char *  prefix,
ssize_t  idx 
) const

Dump info like for SgAsm* objects.


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