scitools.com

← Graph catalog

Withby is one of the interactive graphs Understand can draw of your code — call trees, dependencies, control flow, and more.

Withby

Languages: Ada
Targets: Packages, Subprograms
Variants: Classic, Cluster, Compare, Relationship, Simplified

Show what withs a selected Ada package, subprogram, task, or protected object, directly or indirectly.

For a selected Ada unit, this shows an edge from each package that names it in a with clause — whether that clause is on the withing package’s spec or its body — then recurses into each of those packages’ own withers, building a multi-level tree.

Rooted at IO_Utils below, the graph shows it withed by Data_Reader and Data_Writer (from their specs) and by Processor and Monitor (from their bodies). Processor is itself withed by Pipeline and Monitor (from their specs) and by Application (from its body); Pipeline and Monitor are each withed by Application’s spec in turn. Application is withed by nothing, ending the chain. The inverse graph, With, shows the reverse relationship — everything the selected unit withs, directly or indirectly.

See the following code and corresponding graph

// application.ads
with Pipeline;
with Monitor;

// application.adb
with Processor;

// pipeline.ads
with Processor;

// monitor.ads
with Processor;

// monitor.adb
with IO_Utils;

// processor.ads
with Data_Reader;
with Data_Writer;

// processor.adb
with IO_Utils;

// data_reader.ads
with IO_Utils;

// data_writer.ads
with IO_Utils;

// io_utils.ads

Withby - Classic

The Classic variant is similar to the Simplified variant, showing all relationships in a simple tree, but it uses a custom layout algorithm instead of Graphviz.


Back to Withby

Withby - Cluster

The Cluster variant groups entities by their containing class/file/architecture.


Back to Withby

Withby - Compare

The Compare variant shows how the graph has changed relative to the project's comparison database.


Back to Withby

Withby - Relationship

The Relationship variant filters the graph to only paths connecting the two entities.


Back to Withby

Withby - Simplified

The Simplified variant shows all relationships in a simple tree (no clusters)


Back to Withby