Is there a tool out there for visualizing dynamic call graphs? I saw a reference to one for Visual Basic 6 but I'd like one for .NET.
If I had to build a visualizer myself should I bother with the .NET profiling API or should I do something with Mono.Cecil? I started writing a CLI runtime with Cecil, but I guess it'd be easier if I just injected call-graph recording calls in the assemblies, although since I don't know the execution route ahead of time and would have to instrument everything.
You coud use NProf, an open source project on Sourceforge. It allows you to extend the default GUI with new visualization tools.
"nprof is designed to be not only a fully-fledged profiler for .NET applications, but also a complete API that can be used to build other profiler front-ends, as well as extend the default GUI with new visualization tools."
Profiling CLR is the purpose of the .NET Profiling API, so it seems to be perfect for your need. Most part of profiler products are based on top of it. But you'll have to write unmanaged code, urk.
Using Cecil is possible too, and pretty straightforward if you just want to record enter/exit of methods.
EDIT:
Well, PostSharp is probably the best solution, as it allows you to handle such a requirement by relying on static weaving. AOP provides a better level of abstraction than directly rewrite IL with Cecil.
I love the CLR Profiler. I won't waste space by reproducing the documentation here, but it sounds like it is exactly what you are looking for.
The CLR Profiler is now available on Microsoft's Archive GitHub
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With