dotTrace 2016.2 Help

Folding Recursive Calls

Recursive call stacks can be deep and difficult to analyze. Thus, complex call stacks with multiple recursive calls require almost infinite stack scrolling. To simplify analysis of such call stacks, you can fold recursive calls. When a chain of recursive calls is folded, dotTrace recalculates this call tree (it summarizes call times of a particular method in all recursive subtrees) and presents information by method signatures.

Recursive calls are marked with the ico_recursive icon.

Folded recursive calls are marked with the ico_recursive_collapse icon.

To fold a recursive call:

  1. Select a recursive function call in Call Tree.
  2. Click ico_recursive to fold the function call.

To unfold a recursive call:

  1. Select a recursive function call in Call Tree.
  2. Click ico_recursive_collapse to unfold the function call.

Example

Consider an example for better understanding of how Timeline Viewer calculates calls time when recursive calls are folded.

folded_recursive_calls_example

If in the example above you fold recursive calls starting from the call A UserMethod1, Call Tree will look like follows (each letter stands for a call own time).

ico_recursive_collapseUserMethod1 A + B + C + D + E + F + G + H + I
|UserMethod2 E + G
| |SystemMethod1 G
|SystemMethod1 C + H
|SystemMethod2 I

Last modified: 15 December 2016