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 ULONG64 address, const std::string &type) const
SymbolGroupValue addSymbolForAncestor(const std::string &ancestorName) const
ULONG64 address() const
ULONG64 addressOfAncestor(const std::string &name) const
unsigned childCount() const
SymbolGroupValueContext context() const
std::string error() const
double floatValue(double defaultValue = -999) const
SymbolAncestorInfo infoOfAncestor(const std::string &name) const
std::vector<std::string> innerTypes() const
int intValue(int defaultValue = -1) const
bool isValid() const
std::string module() const
std::string name() const
SymbolGroupNode *node() const
LONG64 offsetOfAncestor(const std::string &name) const
ULONG64 offsetOfChild(const SymbolGroupValue &child) const
SymbolGroupValue parent() const
unsigned char *pointerData(unsigned length) const
SymbolGroupValue pointerTypeCast(const char *type) const
ULONG64 pointerValue(ULONG64 defaultValue = 0) const
int readIntegerFromAncestor(const std::string &name, int defaultValue = -1) const
ULONG64 readPointerValueFromAncestor(const std::string &name) const
unsigned 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 charCount, unsigned maxCharCount = 512) const
operator bool() const
SymbolGroupValue operator[](const char *name) const
SymbolGroupValue operator[](unsigned) const

Static Public Members

std::string addPointerType(const std::string &)
unsigned fieldOffset(const char *type, const char *field)
SymbolGroupValue findMember(const SymbolGroupValue &start, const std::string &symbolName)
std::list<std::string> getAllModuleNames(const SymbolGroupValueContext &c, std::string *errorMessage = 0)
std::vector<std::string> innerTypesOf(const std::string &t)
unsigned intSize()
bool isArrayType(const std::string &)
unsigned isMovable(const std::string &, const SymbolGroupValue &v)
unsigned isPointerType(const std::string &)
bool isVTableType(const std::string &t)
std::string moduleOfType(const std::string &type)
std::string pointedToSymbolName(ULONG64 address, const std::string &type)
unsigned pointerDiffSize()
unsigned pointerSize()
std::string pointerType(const std::string &type)
double readDouble(CIDebugDataSpaces *ds, ULONG64 address, double defaultValue = 0.0, std::string *errorMessage = 0)
int readIntValue(CIDebugDataSpaces *ds, ULONG64 address, int defaultValue = 0, std::string *errorMessage = 0)
unsigned char *readMemory(CIDebugDataSpaces *ds, ULONG64 address, ULONG length, std::string *errorMessage = 0)
ULONG64 readPointerValue(CIDebugDataSpaces *ds, ULONG64 address, std::string *errorMessage = 0)
LONG64 readSignedValue(CIDebugDataSpaces *ds, ULONG64 address, ULONG debuggeeTypeSize, LONG64 defaultValue = 0, std::string *errorMessage = 0)
ULONG64 readUnsignedValue(CIDebugDataSpaces *ds, ULONG64 address, ULONG debuggeeTypeSize, ULONG64 defaultValue = 0, std::string *errorMessage = 0)
SymbolList resolveSymbol(const char *pattern, const SymbolGroupValueContext &c, std::string *errorMessage = 0)
std::list<std::string> resolveSymbolName(const char *pattern, const SymbolGroupValueContext &c, std::string *errorMessage = 0)
std::string resolveType(const std::string &type, const SymbolGroupValueContext &ctx, const std::string &currentModule = std::string())
unsigned 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, ULONG64 address, const unsigned char *data, ULONG 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)

Copy constructor.

SymbolGroupValue::SymbolGroupValue()

Default constructs an instance of SymbolGroupValue.

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

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

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

ULONG64 SymbolGroupValue::address() const

ULONG64 SymbolGroupValue::addressOfAncestor(const std::string &name) const

unsigned SymbolGroupValue::childCount() const

SymbolGroupValueContext SymbolGroupValue::context() const

std::string SymbolGroupValue::error() const

[static] unsigned 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] std::list<std::string> SymbolGroupValue::getAllModuleNames(const SymbolGroupValueContext &c, std::string *errorMessage = 0)

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

std::vector<std::string> SymbolGroupValue::innerTypes() const

[static] std::vector<std::string> SymbolGroupValue::innerTypesOf(const std::string &t)

[static] unsigned SymbolGroupValue::intSize()

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

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

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

[static] unsigned 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

LONG64 SymbolGroupValue::offsetOfAncestor(const std::string &name) const

ULONG64 SymbolGroupValue::offsetOfChild(const SymbolGroupValue &child) const

SymbolGroupValue SymbolGroupValue::parent() const

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

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

[static] unsigned SymbolGroupValue::pointerDiffSize()

[static] unsigned SymbolGroupValue::pointerSize()

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

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

ULONG64 SymbolGroupValue::pointerValue(ULONG64 defaultValue = 0) const

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

[static] int SymbolGroupValue::readIntValue(CIDebugDataSpaces *ds, ULONG64 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, ULONG64 address, ULONG length, std::string *errorMessage = 0)

[static] ULONG64 SymbolGroupValue::readPointerValue(CIDebugDataSpaces *ds, ULONG64 address, std::string *errorMessage = 0)

ULONG64 SymbolGroupValue::readPointerValueFromAncestor(const std::string &name) const

[static] LONG64 SymbolGroupValue::readSignedValue(CIDebugDataSpaces *ds, ULONG64 address, ULONG debuggeeTypeSize, LONG64 defaultValue = 0, std::string *errorMessage = 0)

[static] ULONG64 SymbolGroupValue::readUnsignedValue(CIDebugDataSpaces *ds, ULONG64 address, ULONG debuggeeTypeSize, ULONG64 defaultValue = 0, std::string *errorMessage = 0)

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

[static] std::list<std::string> SymbolGroupValue::resolveSymbolName(const char *pattern, const SymbolGroupValueContext &c, std::string *errorMessage = 0)

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

unsigned SymbolGroupValue::size() const

[static] unsigned 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 charCount, unsigned maxCharCount = 512) const

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

SymbolGroupValue::operator bool() const

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

SymbolGroupValue SymbolGroupValue::operator[](unsigned) const