Object References is one of the interactive graphs Understand can draw of your code — call trees, dependencies, control flow, and more.
Object References
Languages: Ada, Any, C#, C++, Fortran, Java, Jovial, Pascal, Rust, VHDL, WebTargets: Functions, Objects
Variants: Classic, Compare (Classic), With Called By (Classic), With Called By (Cluster)
Show what directly references a selected object, macro, variable, field, or property.
The root is the selected entity. Each direct reference is added as a child — anything that sets, uses, or modifies it — with the edge colored by how: a set is green, a modify is orange, and a use (or anything else) is the default blue.
Rooted at GlobalObject below, the graph shows three direct references
in demo.cpp: functionPtrDemo (a use, in if (GlobalObject > n)),
simpleOverridesDemo (a modify, via GlobalObject++),
and complexOverridesDemo (a set, via GlobalObject = 0).
See the following code and corresponding graph
// demo.cpp
int GlobalObject = 0;
int functionPtrDemo(int n)
{
if (GlobalObject > n)
return n;
/* ... */
}
void simpleOverridesDemo()
{
/* ... */
GlobalObject ++;
}
void complexOverridesDemo()
{
/* ... */
GlobalObject = 0;
}
void callDemo(int n)
{
/* ... */
functionPtrDemo(n);
simpleOverridesDemo();
complexOverridesDemo();
/* ... */
}
// callby.cpp
class CallbyDerivedA : public CallbyBase {
public:
void pureVirtualCall() override { callDemo(0); };
};
void altFirst()
{
callDemo(1);
}
Object References - Classic
This variant shows only the direct references above — it doesn't continue further to callers, and doesn't cluster entities by file or architecture. See also the compare and with called by graphs.
This variant is a plugin. It can be enabled/disabled from the Plugin Manager.
Object References - Compare (Classic)
This variant compares those same references against the project's comparison
database: an entity present unchanged in both versions is left unfilled, one whose
own contents changed is filled blue, one that's new is filled green, and one that
no longer exists is filled orange. In a version where functionPtrDemo
was renamed from functionPointerDemo, demo.cpp is filled
blue since its contents changed, and the rename shows up as two separate entities
— functionPtrDemo (its new name, filled green) and
functionPointerDemo (its old name, filled orange) — both still
shown using GlobalObject. See also the
classic and
with called by graphs.
This variant is a plugin. It can be enabled/disabled from the Plugin Manager.
Object References - With Called By (Classic)
This variant also continues from each reference with a Called By relationship:
whatever calls that function, then whatever calls that caller in turn, as many
levels deep as the Called By Depth option allows. functionPtrDemo,
simpleOverridesDemo, and complexOverridesDemo are all
called by callDemo, which is itself called by altFirst
and by CallbyDerivedA::pureVirtualCall, both in callby.cpp.
See also the classic
and compare
graphs.
This variant is a plugin. It can be enabled/disabled from the Plugin Manager.
Object References - With Called By (Cluster)
This variant also continues from each reference with a Called By relationship:
whatever calls that function, then whatever calls that caller in turn, as many
levels deep as the Called By Depth option allows. functionPtrDemo,
simpleOverridesDemo, and complexOverridesDemo are all
called by callDemo, which is itself called by altFirst
and by CallbyDerivedA::pureVirtualCall, both in callby.cpp.
This variant also supports clustering.