// Create the top level node to deal with the root selection.
IRootVMNode rootNode = new RootDMVMNode(this);
setRootNode(rootNode);
// Create the next level which represents members of structs/unions/enums and elements of arrays.
GdbVariableVMNode subExpressioNode = createGdbVariableVMNode(varAccess);
addChildNodes(rootNode, new IVMNode[] { subExpressioNode });
/* Wire up the casting support. IExpressions2 service is always available
* for gdb. No need to call hookUpCastingSupport */
subExpressioNode.setCastToTypeSupport(new DsfCastToTypeSupport(getSession(), this, varAccess));
// Configure the sub-expression node to be a child of itself. This way the content
// provider will recursively drill-down the variable hierarchy.
addChildNodes(subExpressioNode, new IVMNode[] { subExpressioNode });
}