Extending Qt Creator Manual | Qt Creator CDB Extensions

Extending Qt Creator Manual 4.3.0

# Qt Creator CDB Extensions

Qt Creator CDB extensions are loaded into CDB.exe (see cdbengine.cpp). They provide the following features:

- Notification about the state of the debugging session:
  - idle: (hooked with .idle_cmd) debuggee stopped
  - accessible: Debuggee stopped, cdb.exe accepts commands
  - inaccessible: Debuggee runs, no way to post commands
  - session active/inactive: Lost debuggee, terminating.
- Hook up with output/event callbacks and produce formatted output
- Provide some extension commands that produce output in a standardized (GDBMI) format that ends up in handleExtensionMessage().

containerSize()
containerChildren()
EventCallback
ExtensionCommandContext
ExtensionContext
LocalsSymbolGroup | Creates a Symbol group representing the Locals view
SymbolGroup | Creates a symbol group storing a tree of expanded symbols rooted on a fake "locals" root element
WatchesSymbolGroup | Creates a watch symbol group
AbstractSymbolGroupNode | Abstract base class for a node of SymbolGroup providing the child list interface
BaseSymbolGroupNode | The base class for a node of SymbolGroup with a flat list of children
DebugFilterSymbolGroupNodeVisitor | Debug filtering output visitor
DebugSymbolGroupNodeVisitor | Debug output visitor
DumpParameters | Contains all parameters for GDBMI dumping of a symbol group in one class. The debugging engine passes maps of type names/inames to special integer values indicating hex/dec, etc
DumpSymbolGroupNodeVisitor | GDBMI dump output visitor used to report locals values back to the debugging engine
MapNodeSymbolGroupNode | [fake] map node with a fake array index and key/value entries consisting of ReferenceSymbolGroupNode
ReferenceSymbolGroupNode | Artificial node referencing another (real) SymbolGroupNode (added symbol or symbol from within an expanded linked list structure)
SymbolGroupNode | Represents a real node within a symbol group, identified by its index in IDebugSymbolGroup
SymbolGroupNodeVisitor | Visitor that iterates over the nodes and builds the full iname path ('local.foo.bar') that is required for GDBMI dumping
QtInfo | Qt information determined on demand
SymbolGroupValue | Flyweight tied to a SymbolGroupNode providing a convenient operator[] (name, index) and value getters for notation of dumpers
SymbolGroupValueContext | Passes all IDebug interfaces required for SymbolGroupValue