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 int 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 int expandList(const int &nodes, std::string *errorMessage)
unsigned int expandListRunComplexDumpers(const int &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 int &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, SymbolGroup::SymbolParameterVector *vec, std::string *errorMessage)

Protected Functions

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

Static Protected Members

bool getSymbolParameters(CIDebugSymbolGroup *m_symbolGroup, 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 SymbolGroup::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 int 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 int SymbolGroup::expandList(const int &nodes, std::string *errorMessage)

unsigned int SymbolGroup::expandListRunComplexDumpers(const int &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, SymbolGroup::SymbolParameterVector *vec, std::string *errorMessage)

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

void SymbolGroup::markUninitialized(const int &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)