Dyninst::SymtabAPI::LineInformation Class Reference

#include <LineInformation.h>

Inheritance diagram for Dyninst::SymtabAPI::LineInformation:
Dyninst::AnnotationContainer< Statement > Dyninst::SymtabAPI::RangeLookup< Statement, Statement::StatementLess >

Public Types

typedef RangeLookup< Statement,
Statement::StatementLess >
::const_iterator 
const_iterator
typedef RangeLookup< Statement,
Statement::StatementLess >
::AddressRange 
AddressRange

Public Member Functions

SYMTAB_EXPORT LineInformation ()
SYMTAB_EXPORT bool addLine (const char *lineSource, unsigned int lineNo, unsigned int lineOffset, Offset lowInclusiveAddr, Offset highExclusiveAddr)
SYMTAB_EXPORT void addLineInfo (LineInformation *lineInfo)
SYMTAB_EXPORT bool addAddressRange (Offset lowInclusiveAddr, Offset highExclusiveAddr, const char *lineSource, unsigned int lineNo, unsigned int lineOffset=0)
SYMTAB_EXPORT bool getSourceLines (Offset addressInRange, std::vector< Statement * > &lines)
SYMTAB_EXPORT bool getSourceLines (Offset addressInRange, std::vector< LineNoTuple > &lines)
SYMTAB_EXPORT bool getAddressRanges (const char *lineSource, unsigned int LineNo, std::vector< AddressRange > &ranges)
SYMTAB_EXPORT const_iterator begin () const
SYMTAB_EXPORT const_iterator end () const
SYMTAB_EXPORT unsigned getSize () const
SYMTAB_EXPORT ~LineInformation ()
virtual bool addItem_impl (Statementt)=0
bool addItem (Statementt)
virtual const char * getElementTypename ()

Protected Attributes

unsigned size_

Private Types

typedef
RangeLookupImpl::AddressRangeLess 
AddressRangeLess
typedef std::multimap
< Statement, AddressRange,
Statement::StatementLess
AddressRangeByValue
typedef std::multimap
< AddressRange, Statement,
AddressRangeLess
ValueByAddressRange

Private Member Functions

SYMTAB_EXPORT bool addItem_impl (Statement)
SYMTAB_EXPORT Serializableac_serialize_impl (SerializerBase *, const char *="lineInformation") THROW_SPEC(SerializerError)
bool addValue (Statementv, Offset lowInclusiveAddr, Offset highExclusiveAddr)
bool addAddressRange (Offset lowInclusiveAddr, Offset highExclusiveAddr, Statementv)
bool getValues (Offset addressInRange, std::vector< Statement * > &values)
bool getAddressRanges (Statementv, std::vector< AddressRange > &ranges)

Private Attributes

ValueByAddressRange valuesByAddressRangeMap
AddressRangeByValue addressRangesByValueMap

Detailed Description

Definition at line 45 of file LineInformation.h.


Member Typedef Documentation

Definition at line 88 of file RangeLookup.h.

Definition at line 86 of file RangeLookup.h.

Definition at line 89 of file RangeLookup.h.


Constructor & Destructor Documentation

LineInformation::LineInformation (  ) 

Definition at line 44 of file LineInformation.C.

References size_.

LineInformation::~LineInformation (  ) 

Definition at line 168 of file LineInformation.C.


Member Function Documentation

Serializable * LineInformation::ac_serialize_impl ( SerializerBase ,
const char *  = "lineInformation" 
) [private, virtual]

Reimplemented from Dyninst::AnnotationContainer< Statement >.

Definition at line 196 of file LineInformation.C.

bool Dyninst::SymtabAPI::RangeLookup< Statement , Statement::StatementLess >::addAddressRange ( Offset  lowInclusiveAddr,
Offset  highExclusiveAddr,
Statement  v 
) [inherited]
bool LineInformation::addAddressRange ( Offset  lowInclusiveAddr,
Offset  highExclusiveAddr,
const char *  lineSource,
unsigned int  lineNo,
unsigned int  lineOffset = 0 
)

Definition at line 82 of file LineInformation.C.

References addLine().

Referenced by Dyninst::SymtabAPI::Symtab::addAddressRange().

bool Dyninst::AnnotationContainer< Statement >::addItem ( Statement  t  )  [inline, inherited]

Definition at line 65 of file Serialization.h.

References Dyninst::AnnotationContainer< T >::addItem_impl().

virtual bool Dyninst::AnnotationContainer< Statement >::addItem_impl ( Statement  t  )  [pure virtual, inherited]
bool LineInformation::addItem_impl ( Statement  s  )  [private]
bool LineInformation::addLine ( const char *  lineSource,
unsigned int  lineNo,
unsigned int  lineOffset,
Offset  lowInclusiveAddr,
Offset  highExclusiveAddr 
)

Definition at line 58 of file LineInformation.C.

References addItem_impl().

Referenced by addAddressRange(), Dyninst::SymtabAPI::Symtab::addLine(), and addLineInfo().

void LineInformation::addLineInfo ( LineInformation lineInfo  ) 

Definition at line 71 of file LineInformation.C.

References addLine(), begin(), and end().

Referenced by Dyninst::SymtabAPI::Symtab::parseLineInformation().

bool Dyninst::SymtabAPI::RangeLookup< Statement , Statement::StatementLess >::addValue ( Statement  v,
Offset  lowInclusiveAddr,
Offset  highExclusiveAddr 
) [inherited]

Referenced by addItem_impl().

LineInformation::const_iterator LineInformation::begin (  )  const
LineInformation::const_iterator LineInformation::end (  )  const
bool Dyninst::SymtabAPI::RangeLookup< Statement , Statement::StatementLess >::getAddressRanges ( Statement  v,
std::vector< AddressRange > &  ranges 
) [inherited]
SYMTAB_EXPORT bool Dyninst::SymtabAPI::LineInformation::getAddressRanges ( const char *  lineSource,
unsigned int  LineNo,
std::vector< AddressRange > &  ranges 
)
virtual const char* Dyninst::AnnotationContainer< Statement >::getElementTypename (  )  [inline, virtual, inherited]

Definition at line 66 of file Serialization.h.

unsigned LineInformation::getSize (  )  const
SYMTAB_EXPORT bool Dyninst::SymtabAPI::LineInformation::getSourceLines ( Offset  addressInRange,
std::vector< LineNoTuple > &  lines 
)
SYMTAB_EXPORT bool Dyninst::SymtabAPI::LineInformation::getSourceLines ( Offset  addressInRange,
std::vector< Statement * > &  lines 
)
bool Dyninst::SymtabAPI::RangeLookup< Statement , Statement::StatementLess >::getValues ( Offset  addressInRange,
std::vector< Statement * > &  values 
) [inherited]

Field Documentation

Definition at line 114 of file RangeLookup.h.

Definition at line 90 of file LineInformation.h.

Referenced by addItem_impl(), getSize(), and LineInformation().

Definition at line 113 of file RangeLookup.h.


The documentation for this class was generated from the following files:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jul 2013 for SymtabAPI by  doxygen 1.6.1