When I profile my application with dotTrace 5.0, a large percentage of the running time shows up as "[Unsafe stack walking]". I've been unable to find any documentation about this. What exactly does this mean?
After further investigation, this only happens for the Sampling profiler, and it appears to happen for time spent in a call to a WCF service. So I guess my question is - does dotTrace not support profiling calls to WCF services?
To be clear - this is not a WCF service I am profiling, it is a WPF thick client that calls web services.
The sampling profiler generates stack traces for managed threads by timer. So, there are some reasons when profiler can not get managed stack trace:
- only native code on stack
- unsafe time to walk on stack (for example: can't get thread context, some restriction in inside CLR, ...)
We shows that time in special nodes: [native or optimized code] & [unsafe stack walk] as you can see.
We also have some improvements in our x86/x64 stack walker. Now it's under stress testing. So, I belive that dotTrace 5.0.1 will contain it. New stack walker should decrease time for [...] nodes.
Senior Software Engineer
"Develop with pleasure!"