Details of a specific address range in a compiled method either a primary range identifying a
whole compiled method or a sub-range identifying a sub-sequence of the compiled instructions that
may derive from top level or inlined code. Each sub-range is linked with its caller, (which may
be the primary range) and its callees, forming a call tree. Subranges are either leaf nodes with
no children or call nodes which have children.
- A leaf node at the top level (depth 0) records the start and extent of a sequence of compiled
code derived from the top level method. The leaf node reports itself as belonging to the top
level method.
- A leaf node at depth N records the start and extent of a sequence of compiled code derived
from a leaf inlined method at a call depth of N. The leaf node reports itself as belonging to the
leaf method.
- A call node at level 0 records the start and extent of a sequence of compiled code that
includes all compiled code derived from a top level call that has been inlined. All child nodes
of the call node (direct or indirect) should model ranges that lie within the parent range. The
call node reports itself as belonging to the top level method and its file and line information
identify the location of the call.
- A call node at level N records the start and extent of a sequence of compiled code that
includes all compiled code derived from an inline call at depth N. All child nodes of the call
node (direct or indirect) should model ranges that lie within the parent range. The call node
reports itself as belonging to the caller method at depth N and its file and line information
identify the location of the call.
Ranges also record the location of local and parameter values that are valid for the range's
extent. Each value maps to a corresponding parameter or local variable attached to the range's
method. So, a leaf or call node at level 0 records local and parameter values for separate
sub-extents of the top level method while a leaf or call node at level N+1 records local and
parameter values for separate sub-extents of an inline called method whose full extent is
represented by the parent call range at level N.