SymbolGroup Class

The SymbolGroup class creates a symbol group storing a tree of expanded symbols rooted on a fake "locals" root element. More...

Header: #include <SymbolGroup>
Inherited By:

LocalsSymbolGroup and WatchesSymbolGroup

Public Types

Public Functions

virtual ~SymbolGroup()
bool accept(SymbolGroupNodeVisitor &visitor) const
SymbolGroupNode *addSymbol(const std::string &module, const std::string &name, const std::string &displayName, const std::string &iname, std::string *errorMessage)
SymbolGroupNode *addSymbol(const std::string &module, const std::string &name, const std::string &iname, std::string *errorMessage)
bool assign(const std::string &node, int valueEncoding, const std::string &value, const SymbolGroupValueContext &ctx, std::string *errorMessage)
bool collapse(const std::string &node, std::string *errorMessage)
std::string debug(const std::string &iname = std::string(), const std::string &filter = std::string(), unsigned verbosity = 0) const
CIDebugSymbolGroup *debugSymbolGroup() const
std::string dump(const SymbolGroupValueContext &ctx, const DumpParameters &p = DumpParameters()) const
std::string dump(const std::string &iname, const SymbolGroupValueContext &ctx, const DumpParameters &p, std::string *errorMessage)
bool expand(const std::string &node, std::string *errorMessage)
unsigned expandList(const std::vector<std::string> &nodes, std::string *errorMessage)
unsigned expandListRunComplexDumpers(const std::vector<std::string> &nodes, const SymbolGroupValueContext &ctx, std::string *errorMessage)
bool expandRunComplexDumpers(const std::string &node, const SymbolGroupValueContext &ctx, std::string *errorMessage)
AbstractSymbolGroupNode *find(const std::string &iname) const
void markUninitialized(const std::vector<std::string> &nodes)
SymbolGroupNode *root()
const SymbolGroupNode *root() const
bool typeCast(const std::string &iname, const std::string &desiredType, std::string *errorMessage)

Static Public Members

bool getSymbolParameters(CIDebugSymbolGroup *m_symbolGroup, unsigned long start, unsigned long count, SymbolParameterVector *vec, std::string *errorMessage)

Protected Functions

SymbolGroup(CIDebugSymbolGroup *, const SymbolParameterVector &vec, const std::string &rootModule, const char *rootName)
bool removeSymbol(AbstractSymbolGroupNode *n, std::string *errorMessage)

Static Protected Members

bool getSymbolParameters(CIDebugSymbolGroup *m_symbolGroup, SymbolParameterVector *vec, std::string *errorMessage)

Detailed Description

The SymbolGroup class creates a symbol group storing a tree of expanded symbols rooted on a fake "locals" root element.

Provides a find() function based on inames ("locals.this.i1.data") and dump() functions used for GDBMI-format dumping and debug helpers. Qt Creator's WatchModel is fed from this class. It basically represents the symbol group tree with some additional node types (Reference and Map Node types.

Member Type Documentation

typedef SymbolGroup::AbstractSymbolGroupNodePtrVector

typedef SymbolGroup::SymbolParameterVector

Member Function Documentation

[protected] SymbolGroup::SymbolGroup(CIDebugSymbolGroup *, const SymbolParameterVector &vec, const std::string &rootModule, const char *rootName)

Default constructs an instance of SymbolGroup.

[virtual] SymbolGroup::~SymbolGroup()

Destroys the instance of SymbolGroup. The destructor is virtual.

bool SymbolGroup::accept(SymbolGroupNodeVisitor &visitor) const

SymbolGroupNode *SymbolGroup::addSymbol(const std::string &module, const std::string &name, const std::string &displayName, const std::string &iname, std::string *errorMessage)

SymbolGroupNode *SymbolGroup::addSymbol(const std::string &module, const std::string &name, const std::string &iname, std::string *errorMessage)

bool SymbolGroup::assign(const std::string &node, int valueEncoding, const std::string &value, const SymbolGroupValueContext &ctx, std::string *errorMessage)

bool SymbolGroup::collapse(const std::string &node, std::string *errorMessage)

std::string SymbolGroup::debug(const std::string &iname = std::string(), const std::string &filter = std::string(), unsigned verbosity = 0) const

CIDebugSymbolGroup *SymbolGroup::debugSymbolGroup() const

std::string SymbolGroup::dump(const SymbolGroupValueContext &ctx, const DumpParameters &p = DumpParameters()) const

std::string SymbolGroup::dump(const std::string &iname, const SymbolGroupValueContext &ctx, const DumpParameters &p, std::string *errorMessage)

bool SymbolGroup::expand(const std::string &node, std::string *errorMessage)

unsigned SymbolGroup::expandList(const std::vector<std::string> &nodes, std::string *errorMessage)

unsigned SymbolGroup::expandListRunComplexDumpers(const std::vector<std::string> &nodes, const SymbolGroupValueContext &ctx, std::string *errorMessage)

bool SymbolGroup::expandRunComplexDumpers(const std::string &node, const SymbolGroupValueContext &ctx, std::string *errorMessage)

AbstractSymbolGroupNode *SymbolGroup::find(const std::string &iname) const

[static] bool SymbolGroup::getSymbolParameters(CIDebugSymbolGroup *m_symbolGroup, unsigned long start, unsigned long count, SymbolParameterVector *vec, std::string *errorMessage)

[static protected] bool SymbolGroup::getSymbolParameters(CIDebugSymbolGroup *m_symbolGroup, SymbolParameterVector *vec, std::string *errorMessage)

void SymbolGroup::markUninitialized(const std::vector<std::string> &nodes)

[protected] bool SymbolGroup::removeSymbol(AbstractSymbolGroupNode *n, std::string *errorMessage)

SymbolGroupNode *SymbolGroup::root()

const SymbolGroupNode *SymbolGroup::root() const

bool SymbolGroup::typeCast(const std::string &iname, const std::string &desiredType, std::string *errorMessage)