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().

containerChildren()

containerSize()

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

EventCallback

ExtensionCommandContext

ExtensionContext

LocalsSymbolGroup

Creates a Symbol group representing the Locals view

MapNodeSymbolGroupNode

[fake] map node with a fake array index and key/value entries consisting of ReferenceSymbolGroupNode

QtInfo

Qt information determined on demand

ReferenceSymbolGroupNode

Artificial node referencing another (real) SymbolGroupNode (added symbol or symbol from within an expanded linked list structure)

SymbolGroup

Creates a symbol group storing a tree of expanded symbols rooted on a fake "locals" root element

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

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

WatchesSymbolGroup

Creates a watch symbol group