Extending Qt Creator Manual | SymbolGroupNode

Extending Qt Creator Manual 4.8.1

# SymbolGroupNode Class

The SymbolGroupNode class represents a real node within a symbol group, identified by its index in IDebugSymbolGroup. More...

Header: | #include <SymbolGroupNode>
Inherits: | BaseSymbolGroupNode

- List of all members, including inherited members

## Public Types

enum | Flags { Uninitialized, SimpleDumperNotApplicable, SimpleDumperOk, SimpleDumperFailed, ..., PreSortedChildren }
typedef | SymbolParameterVector

## Public Functions

virtual | ~SymbolGroupNode()
SymbolGroupNode * | addSymbolByName(const std::string &module, const std::string &name, const std::string &displayName, const std::string &iname, std::string *errorMessage)
int | address() const
bool | assign(const std::string &value, std::string *errorMessage = 0)
bool | canExpand() const
bool | collapse(std::string *errorMessage)
int | dumpNode(std::ostream &str, const std::string &aName, const std::string &aFullIName, const DumpParameters &p, const SymbolGroupValueContext &ctx)
int | dumperContainerSize()
int | dumperType() const
bool | expand(std::string *errorMessage)
bool | expandRunComplexDumpers(const SymbolGroupValueContext &ctx, std::string *errorMessage)
int | index() const
bool | isExpanded() const
bool | isMemoryAccessible() const
MemoryHandle * | memory() const
std::string | module() const
void | parseParameters(int index, int parameterOffset, const SymbolGroupNode::SymbolParameterVector &vec)
bool | removeSelf(SymbolGroupNode *root, std::string *errorMessage)
void | runComplexDumpers(const SymbolGroupValueContext &ctx)
std::wstring | simpleDumpValue(const SymbolGroupValueContext &ctx, std::string *encoding)
unsigned int | size() const
int | subElements() const
SymbolGroup * | symbolGroup() const
std::wstring | symbolGroupFixedValue() const
std::wstring | symbolGroupRawValue() const
std::string | type() const
bool | typeCast(const std::string &desiredType, std::string *errorMessage)

## Reimplemented Public Functions

virtual SymbolGroupNode * | asSymbolGroupNode()
virtual const SymbolGroupNode * | asSymbolGroupNode() const
virtual void | debug(std::ostream &os, const std::string &visitingFullIname, unsigned int verbosity, unsigned int depth) const
virtual int | dump(std::ostream &str, const std::string &fullIname, const DumpParameters &p, const SymbolGroupValueContext &ctx)

- 3 public functions inherited from BaseSymbolGroupNode
- 22 public functions inherited from AbstractSymbolGroupNode

## Static Public Members

SymbolGroupNode * | create(SymbolGroup *sg, const std::string &module, const std::string &name, const SymbolGroupNode::SymbolParameterVector &vec)
std::string | msgAssignError(const std::string &nodeName, const std::string &value, const std::string &why)

### Additional Inherited Members

- 2 protected functions inherited from BaseSymbolGroupNode
- 1 protected type inherited from BaseSymbolGroupNode
- 1 static protected member inherited from AbstractSymbolGroupNode

## Detailed Description

The SymbolGroupNode class represents a real node within a symbol group, identified by its index in IDebugSymbolGroup.

Provides accessors for fixed-up symbol group value and a dumping facility consisting of:

- 'Simple' dumping done when running the DumpVisitor. This produces one line of formatted output shown for the class. These values values are always displayed, while still allowing for expansion of the structure in the debugger. It also pre-determines some information for complex dumping (type, container).
- 'Complex' dumping: Obscures the symbol group children by fake children, for example container children, to be run when calling SymbolGroup::dump with an iname. The fake children are appended to the child list (other children are just marked as obscured for GDBMI dumping so that SymbolGroupValue expressions still work as before).

The dumping is mostly based on SymbolGroupValue expressions. in the debugger. Evaluating those dumpers might expand symbol nodes, but those are not marked as 'ExpandedByRequest'. This stops the dump recursion to prevent outputting data that were not explicitly expanded by the watch handler.

## Member Type Documentation

### enum SymbolGroupNode::Flags

### typedef SymbolGroupNode::SymbolParameterVector

## Property Documentation

## Member Function Documentation

### `[virtual]` SymbolGroupNode::~SymbolGroupNode()

Destroys the instance of SymbolGroupNode. The destructor is virtual.

### SymbolGroupNode *SymbolGroupNode::addSymbolByName(const std::string &module, const std::string &name, const std::string &displayName, const std::string &iname, std::string *errorMessage)

### int SymbolGroupNode::address() const

### `[virtual]` SymbolGroupNode *SymbolGroupNode::asSymbolGroupNode()

### `[virtual]` const SymbolGroupNode *SymbolGroupNode::asSymbolGroupNode() const

### bool SymbolGroupNode::assign(const std::string &value, std::string *errorMessage = 0)

### bool SymbolGroupNode::canExpand() const

### bool SymbolGroupNode::collapse(std::string *errorMessage)

### `[static]` SymbolGroupNode *SymbolGroupNode::create(SymbolGroup *sg, const std::string &module, const std::string &name, const SymbolGroupNode::SymbolParameterVector &vec)

### `[virtual]` void SymbolGroupNode::debug(std::ostream &os, const std::string &visitingFullIname, unsigned int verbosity, unsigned int depth) const

### `[virtual]` int SymbolGroupNode::dump(std::ostream &str, const std::string &fullIname, const DumpParameters &p, const SymbolGroupValueContext &ctx)

### int SymbolGroupNode::dumpNode(std::ostream &str, const std::string &aName, const std::string &aFullIName, const DumpParameters &p, const SymbolGroupValueContext &ctx)

### int SymbolGroupNode::dumperContainerSize()

### int SymbolGroupNode::dumperType() const

### bool SymbolGroupNode::expand(std::string *errorMessage)

### bool SymbolGroupNode::expandRunComplexDumpers(const SymbolGroupValueContext &ctx, std::string *errorMessage)

### int SymbolGroupNode::index() const

### bool SymbolGroupNode::isExpanded() const

### bool SymbolGroupNode::isMemoryAccessible() const

### MemoryHandle *SymbolGroupNode::memory() const

### std::string SymbolGroupNode::module() const

### `[static]` std::string SymbolGroupNode::msgAssignError(const std::string &nodeName, const std::string &value, const std::string &why)

### void SymbolGroupNode::parseParameters(int index, int parameterOffset, const SymbolGroupNode::SymbolParameterVector &vec)

### bool SymbolGroupNode::removeSelf(SymbolGroupNode *root, std::string *errorMessage)

### void SymbolGroupNode::runComplexDumpers(const SymbolGroupValueContext &ctx)

### std::wstring SymbolGroupNode::simpleDumpValue(const SymbolGroupValueContext &ctx, std::string *encoding)

### unsigned int SymbolGroupNode::size() const

### int SymbolGroupNode::subElements() const

### SymbolGroup *SymbolGroupNode::symbolGroup() const

### std::wstring SymbolGroupNode::symbolGroupFixedValue() const

### std::wstring SymbolGroupNode::symbolGroupRawValue() const

### std::string SymbolGroupNode::type() const

### bool SymbolGroupNode::typeCast(const std::string &desiredType, std::string *errorMessage)

## Member Variable Documentation

## Related Non-Members

## Macro Documentation