A .NET application can get a managed StackTrace that describes which methods were called and holds references to them to get their name, token and signature, an
StackTrace
The reason is described by Raymond Chen here.
The short of it:
A parameter to a method can become eligible for collection while the method is still executing.
It's not intuitive, read the part about JIT and GC working together. So the limitation of the StackTrace info is by design.