The call stack view is used to present call stacks and information about the allocations and instances related to the call stacks.
Sort Stacks By
The Sort stacks by field is used to define the order of the call stacks. Below is a list of all the possible options; however, the available options depend on the selected field set.
The options are:
• Allocs/sec (or Allocs)
Shows the stacks first that have the most allocations (per second) between snapshots.
• Bytes/sec (or Alloced bytes)
Shows the stacks first that have the most allocated bytes (per second) in between snapshots.
• Live instances
Shows the stacks first that have the most live instances.
• New live instances
Shows the stacks first that have the most new live instances.
• Live bytes
Shows the stacks first that have the most live bytes.
• New live bytes
Shows the stacks first that have the most new live bytes.
• Disposed instances
Shows the stacks first that have the most disposed instances.
• Undisposed instances
Shows the stacks first that have the most undisposed instances.
• Memory leak instances
Shows the stacks first that have the most memory leak instances.
•
Allocs in gen #0 (or Allocs/sec in gen #0)
Allocs in gen #1 (or
Allocs/sec in gen #1)
Allocs in gen #2 (or Allocs/sec in gen #2)
Allocs in
large heap (or Allocs/sec in large heap)
Shows the stacks first that have the most allocations in the specified heap.
• Unreachable instances
Shows the stacks first that have the highest number of unreachable instances.
• Unreachable bytes
Shows the stacks first that have the highest number of
unreachable bytes.
Hide stacks with zero sort value
If this checkbox is checked, then all call stacks for which the sort value is zero will be hidden.
Stack Depth
To limit the stack depth, the Stack depth field can be used. The stack depth can be selected either by choosing one of the pre-defined values or by entering an arbitrary stack depth. If the selected call stack depth is All, then all call stacks are presented at their full depth. Otherwise, if the depth of a call stack is greater than the selected stack depth, it will be truncated and an entry named [Truncated] will be appended. All call stacks that become equal after truncation will be merged, so truncating call stacks will reduce the number of call stacks presented.
Call Stack
The Call stack group box is used to present a single call stack. The navigator buttons above the call stack can be used to select which call stack to show.
If source information is available for a method in the call
stacks list, then a symbol (
)
will be shown to the left of the method. If running under Visual Studio the
source can be shown by double-clicking the method or by selecting the Show
source command.
The functions presented in the call stack depend on the Call Stack Functions setting. This setting can be changed using the Call Stack Functions command in the View menu or the call stack context menu. The available options are:
• Source
Only includes functions and methods that have
source information. Other functions and methods will be presented as [Skipped
frame].
•
Publically visible
Only includes native functions that are
exported or managed methods that are externally visible. Other functions and
methods will be presented as [Skipped frame].
• All
Includes all functions and methods that are
available in the call stack.
NOTE! The actual functions and methods available depend on the call stack session settings. For more information, see Call Stacks Settings Page.
To the right of the allocation call stack, an info panel is used to present information about the instances allocated by the stack. The fields presented include:
• Live instances
• New live instances
• Allocs/sec (or Allocs)
• Bytes/sec (or Alloced bytes)
• Live bytes
• New live bytes
• Disposed instances
• Delta undisposed instances
•
Allocs in gen #0 (or Allocs/sec in gen #0)
Allocs in gen #1 (or
Allocs/sec in gen #1)
Allocs in gen #2 (or Allocs/sec in gen #2)
Allocs in
large heap (or Allocs/sec in large heap)
• Unreachable instances
• Unreachable bytes
• Memory leak instances
Each field corresponds to one of the columns presented under the Overview page.
If the call stack has created any unmanaged resource instances, then the creation context is indicated with the corresponding symbol in the info panel as well. For more information, see Creation Context.
The actual fields included in the info panel and the way they are presented depend on the selected field set and whether dispose and heap utilization tracking is enabled.