ROSE  0.9.10.75
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 65 of file BinaryLoaderElf.h.

#include <BinaryLoaderElf.h>

Public Member Functions

 VersionedSymbol (SgAsmElfSymbol *symbol)
 
bool is_local () const
 Returns true if this symbol is visible only locally. More...
 
bool is_hidden () const
 Returns true if this symbol is hidden. More...
 
bool is_reference () const
 Returns true if this symbol is a reference to an object rather than the definition of the object. More...
 
bool is_base_definition () const
 Returns tru if this symbol is a base definition. More...
 
void set_symbol (SgAsmElfSymbol *symbol)
 (Re)initializes this symbol. More...
 
SgAsmElfSymbolget_symbol () const
 Returns the symbol part of this versioned symbol. More...
 
SgAsmElfSymbolSectionget_section () const
 Returns the symbol section (.dynsym) where this symbol was defined. More...
 
std::string get_version () const
 Returns the version string of this symbol. More...
 
std::string get_name () const
 Returns the name of this symbol. More...
 
std::string get_versioned_name () const
 Returns the full, versionioned name of this symbol. More...
 
void set_version_entry (SgAsmElfSymverEntry *entry)
 Set the version pointer for this symbol. More...
 
void set_version_def (SgAsmElfSymverDefinedEntry *def)
 Set the version definition of this symbol. More...
 
void set_version_need (SgAsmElfSymverNeededAux *need)
 Set the version requirement of this symbol. More...
 
SgAsmElfSymverNeededAuxget_version_need () const
 Get the version requirement of this symbol. More...
 
SgAsmElfSymverDefinedEntryget_version_def () const
 Get the version definition of 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...
 

Member Function Documentation

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

Returns true if this symbol is visible only locally.

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

Returns true if this symbol is hidden.

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

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

bool Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::is_base_definition ( ) 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.

void Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::set_symbol ( SgAsmElfSymbol symbol)
inline

(Re)initializes this symbol.

Definition at line 90 of file BinaryLoaderElf.h.

SgAsmElfSymbol* Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::get_symbol ( ) const
inline

Returns the symbol part of this versioned symbol.

Definition at line 95 of file BinaryLoaderElf.h.

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

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

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

Definition at line 100 of file BinaryLoaderElf.h.

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

std::string Rose::BinaryAnalysis::BinaryLoaderElf::VersionedSymbol::get_version ( ) 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::get_name ( ) const
inline

Returns the name of this symbol.

Definition at line 110 of file BinaryLoaderElf.h.

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

Returns the full, versionioned name of this symbol.

Used for debugging.

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

Set the version pointer for this symbol.

Definition at line 118 of file BinaryLoaderElf.h.

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

Set the version definition of this symbol.

The definition flags must be zero or VER_FLG_BASE.

Definition at line 123 of file BinaryLoaderElf.h.

References SgAsmElfSymverDefinedEntry::get_flags().

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

Set the version requirement of this symbol.

The requirement flags must be zero or VER_FLG_WEAK.

Definition at line 129 of file BinaryLoaderElf.h.

References SgAsmElfSymverNeededAux::get_flags().

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

Get the version requirement of this symbol.

Definition at line 135 of file BinaryLoaderElf.h.

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

Get the version definition of this symbol.

Definition at line 140 of file BinaryLoaderElf.h.

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: