SymbolGroupValue Class

The SymbolGroupValue class is a flyweight tied to a SymbolGroupNode providing a convenient operator[] (name, index) and value getters for notation of dumpers. More...

Header: #include <SymbolGroupValue>

Public Types

typedef Symbol
typedef SymbolList

Public Functions

SymbolGroupValue(SymbolGroupNode *node, const SymbolGroupValueContext &c)
SymbolGroupValue()
SymbolGroupValue addSymbol(const int address, const std::string &type) const
SymbolGroupValue addSymbolForAncestor(const std::string &ancestorName) const
int address() const
int addressOfAncestor(const std::string &) const
unsigned int childCount() const
SymbolGroupValueContext context() const
std::string error() const
double floatValue(double defaultValue = -999) const
SymbolAncestorInfo infoOfAncestor(const std::string &name) const
int innerTypes() const
int intValue(int defaultValue = -1) const
bool isValid() const
std::string module() const
std::string name() const
SymbolGroupNode *node() const
int offsetOfAncestor(const std::string &) const
int offsetOfChild(const SymbolGroupValue &) const
SymbolGroupValue parent() const
unsigned char *pointerData(unsigned int length) const
SymbolGroupValue pointerTypeCast(const char *type) const
int pointerValue(int) const
int readIntegerFromAncestor(const std::string &name, int defaultValue = -1) const
int readPointerValueFromAncestor(const std::string &) const
unsigned int size() const
std::string type() const
SymbolGroupValue typeCast(const char *type) const
std::string typeOfAncestor(const std::string &childName) const
std::wstring value() const
std::wstring wcharPointerData(unsigned int charCount, unsigned int maxCharCount = 512) const
bool operator bool() const
SymbolGroupValue operator[](const char *name) const
SymbolGroupValue operator[](unsigned int) const

Static Public Members

std::string addPointerType(const std::string &)
unsigned int fieldOffset(const char *type, const char *field)
SymbolGroupValue findMember(const SymbolGroupValue &start, const std::string &symbolName)
int getAllModuleNames(const SymbolGroupValueContext &, std::string *)
int innerTypesOf(const std::string &)
unsigned int intSize()
bool isArrayType(const std::string &)
unsigned int isMovable(const std::string &, const SymbolGroupValue &v)
unsigned int isPointerType(const std::string &)
bool isVTableType(const std::string &t)
std::string moduleOfType(const std::string &type)
std::string pointedToSymbolName(int address, const std::string &type)
unsigned int pointerDiffSize()
unsigned int pointerSize()
std::string pointerType(const std::string &type)
double readDouble(CIDebugDataSpaces *ds, int address, double defaultValue = 0.0, std::string *errorMessage = 0)
int readIntValue(CIDebugDataSpaces *ds, int address, int defaultValue = 0, std::string *errorMessage = 0)
unsigned char *readMemory(CIDebugDataSpaces *ds, int address, int length, std::string *errorMessage = 0)
int readPointerValue(CIDebugDataSpaces *, int, std::string *)
int readSignedValue(CIDebugDataSpaces *, int, int, int, std::string *)
int readUnsignedValue(CIDebugDataSpaces *, int, int, int, std::string *)
SymbolGroupValue::SymbolList resolveSymbol(const char *pattern, const SymbolGroupValueContext &c, std::string *errorMessage = 0)
int resolveSymbolName(const char *, const SymbolGroupValueContext &, std::string *)
std::string resolveType(const std::string &type, const SymbolGroupValueContext &ctx, const std::string &currentModule = std::string())
unsigned int sizeOf(const char *type)
std::string stripArrayType(const std::string &)
std::string stripClassPrefixes(const std::string &)
std::string stripConst(const std::string &type)
std::string stripModuleFromType(const std::string &type)
std::string stripPointerType(const std::string &)
bool writeMemory(CIDebugDataSpaces *ds, int address, const unsigned char *data, int length, std::string *errorMessage = 0)

Detailed Description

The SymbolGroupValue class is a flyweight tied to a SymbolGroupNode providing a convenient operator[] (name, index) and value getters for notation of dumpers.

Inaccessible members return a SymbolGroupValue in state 'invalid'. Example:


  SymbolGroupValue container(symbolGroupNode, symbolGroupValueContext);
  if (SymbolGroupValue sizeV = container["d"]["size"])
    int size = sizeV.intValue()

Member Type Documentation

typedef SymbolGroupValue::Symbol

typedef SymbolGroupValue::SymbolList

Member Function Documentation

SymbolGroupValue::SymbolGroupValue(SymbolGroupNode *node, const SymbolGroupValueContext &c)

Default constructs an instance of SymbolGroupValue.

SymbolGroupValue::SymbolGroupValue()

Default constructs an instance of SymbolGroupValue.

[static] std::string SymbolGroupValue::addPointerType(const std::string &)

SymbolGroupValue SymbolGroupValue::addSymbol(const int address, const std::string &type) const

SymbolGroupValue SymbolGroupValue::addSymbolForAncestor(const std::string &ancestorName) const

int SymbolGroupValue::address() const

int SymbolGroupValue::addressOfAncestor(const std::string &) const

unsigned int SymbolGroupValue::childCount() const

SymbolGroupValueContext SymbolGroupValue::context() const

std::string SymbolGroupValue::error() const

[static] unsigned int SymbolGroupValue::fieldOffset(const char *type, const char *field)

[static] SymbolGroupValue SymbolGroupValue::findMember(const SymbolGroupValue &start, const std::string &symbolName)

double SymbolGroupValue::floatValue(double defaultValue = -999) const

[static] int SymbolGroupValue::getAllModuleNames(const SymbolGroupValueContext &, std::string *)

SymbolAncestorInfo SymbolGroupValue::infoOfAncestor(const std::string &name) const

int SymbolGroupValue::innerTypes() const

[static] int SymbolGroupValue::innerTypesOf(const std::string &)

[static] unsigned int SymbolGroupValue::intSize()

int SymbolGroupValue::intValue(int defaultValue = -1) const

[static] bool SymbolGroupValue::isArrayType(const std::string &)

[static] unsigned int SymbolGroupValue::isMovable(const std::string &, const SymbolGroupValue &v)

[static] unsigned int SymbolGroupValue::isPointerType(const std::string &)

[static] bool SymbolGroupValue::isVTableType(const std::string &t)

bool SymbolGroupValue::isValid() const

std::string SymbolGroupValue::module() const

[static] std::string SymbolGroupValue::moduleOfType(const std::string &type)

std::string SymbolGroupValue::name() const

SymbolGroupNode *SymbolGroupValue::node() const

int SymbolGroupValue::offsetOfAncestor(const std::string &) const

int SymbolGroupValue::offsetOfChild(const SymbolGroupValue &) const

SymbolGroupValue SymbolGroupValue::parent() const

[static] std::string SymbolGroupValue::pointedToSymbolName(int address, const std::string &type)

unsigned char *SymbolGroupValue::pointerData(unsigned int length) const

[static] unsigned int SymbolGroupValue::pointerDiffSize()

[static] unsigned int SymbolGroupValue::pointerSize()

[static] std::string SymbolGroupValue::pointerType(const std::string &type)

SymbolGroupValue SymbolGroupValue::pointerTypeCast(const char *type) const

int SymbolGroupValue::pointerValue(int) const

[static] double SymbolGroupValue::readDouble(CIDebugDataSpaces *ds, int address, double defaultValue = 0.0, std::string *errorMessage = 0)

[static] int SymbolGroupValue::readIntValue(CIDebugDataSpaces *ds, int address, int defaultValue = 0, std::string *errorMessage = 0)

int SymbolGroupValue::readIntegerFromAncestor(const std::string &name, int defaultValue = -1) const

[static] unsigned char *SymbolGroupValue::readMemory(CIDebugDataSpaces *ds, int address, int length, std::string *errorMessage = 0)

[static] int SymbolGroupValue::readPointerValue(CIDebugDataSpaces *, int, std::string *)

int SymbolGroupValue::readPointerValueFromAncestor(const std::string &) const

[static] int SymbolGroupValue::readSignedValue(CIDebugDataSpaces *, int, int, int, std::string *)

[static] int SymbolGroupValue::readUnsignedValue(CIDebugDataSpaces *, int, int, int, std::string *)

[static] SymbolGroupValue::SymbolList SymbolGroupValue::resolveSymbol(const char *pattern, const SymbolGroupValueContext &c, std::string *errorMessage = 0)

[static] int SymbolGroupValue::resolveSymbolName(const char *, const SymbolGroupValueContext &, std::string *)

[static] std::string SymbolGroupValue::resolveType(const std::string &type, const SymbolGroupValueContext &ctx, const std::string &currentModule = std::string())

unsigned int SymbolGroupValue::size() const

[static] unsigned int SymbolGroupValue::sizeOf(const char *type)

[static] std::string SymbolGroupValue::stripArrayType(const std::string &)

[static] std::string SymbolGroupValue::stripClassPrefixes(const std::string &)

[static] std::string SymbolGroupValue::stripConst(const std::string &type)

[static] std::string SymbolGroupValue::stripModuleFromType(const std::string &type)

[static] std::string SymbolGroupValue::stripPointerType(const std::string &)

std::string SymbolGroupValue::type() const

SymbolGroupValue SymbolGroupValue::typeCast(const char *type) const

std::string SymbolGroupValue::typeOfAncestor(const std::string &childName) const

std::wstring SymbolGroupValue::value() const

std::wstring SymbolGroupValue::wcharPointerData(unsigned int charCount, unsigned int maxCharCount = 512) const

[static] bool SymbolGroupValue::writeMemory(CIDebugDataSpaces *ds, int address, const unsigned char *data, int length, std::string *errorMessage = 0)

bool SymbolGroupValue::operator bool() const

SymbolGroupValue SymbolGroupValue::operator[](const char *name) const

SymbolGroupValue SymbolGroupValue::operator[](unsigned int) const