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 |
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 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
Member Function Documentation
[virtual]
SymbolGroupNode::~SymbolGroupNode()
Destroys the instance of SymbolGroupNode. The destructor is virtual.