Regarding TraceDepth with TraceDepth->3,it seems that {{{fib[1]}}} is also 3 level deep, but the output of the code below does not include this expression.Could I know the reason?
According to Doc concerning Trace;
You can set the option TraceDepth->n to tell Trace to include only lists nested at most n levels deep. In this way, you can often pick out the "big steps" in a computation, without seeing the details.
fib[n_] := fib[n - 1] + fib[n - 2] fib[0] = fib[1] = 1; Trace[fib[3], fib[_]] (* {fib[3],{fib[2],{fib[1]},{fib[0]}},{fib[1]}} *)(* There is {{{fib[1]}}} *) Trace[fib[3], fib[_],TraceDepth->3] (* {fib[3],{fib[2],{fib[0]}},{fib[1]}} *)(* {{{fib[1]}}} not included? *) 
![exression tree of Trace[] output](https://i.sstatic.net/M6BuzMZp.png)

{fib[3],{fib[2],{fib[0]}},{fib[1]}}. $\endgroup$fib[0]should be zero and not 1. (this is not related to why you do not seefib[1]in the trace) $\endgroup$fib[0]=0; fib[1]=1; fib[n_]:=fib[n]=fib[n-1]+fib[n-2]$\endgroup$