如何查看.NET程序的动态调用图的可视化?

时间:2008-12-08 07:56:32

标签: .net visualization profiling call-graph

是否有可用于可视化动态调用图的工具?我看到了一个用于Visual Basic 6的引用,但我想要一个用于.NET。

如果我必须自己构建一个可视化工具,我应该使用 .NET分析API ,还是应该使用 Mono.Cecil 做一些事情?我开始用Cecil编写CLI运行时,但我想如果我只是在程序集中注入调用图记录调用会更容易,尽管因为我不知道提前执行路径而且必须检测所有内容

4 个答案:

答案 0 :(得分:3)

也许CodePlex上的这个开源项目可以作为起点帮助:

<强> SequenceViz

http://www.codeplex.com/sequenceviz

“SequenceViz是一个通过逆向工程.NET程序集生成序列图的工具。虽然它比后面的版本稍微多一点。”

有一个独立版本和一个实现为reflector-plugin。

alt text http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=sequenceviz&DownloadId=44432

答案 1 :(得分:1)

分析CLR是.NET Profiling API的目的,因此它似乎非常适合您的需求。探查器产品的大部分都是基于它的顶部。但是你必须编写非托管代码,urk。

使用Cecil也是可能的,如果你只想记录方法的输入/退出,那么非常简单。

编辑:

嗯,PostSharp可能是最好的解决方案,因为它允许您依靠静态编织来处理这样的要求。与使用Cecil直接重写IL相比,AOP提供了更好的抽象级别。

答案 2 :(得分:1)

您可以使用NProf,这是Sourceforge上的一个开源项目。它允许您使用新的可视化工具扩展默认GUI

“nprof不仅是一个完整的.NET应用程序分析器,而且还是一个完整的API,可用于构建其他分析器前端,以及使用新的扩展默认GUI可视化工具。“

答案 3 :(得分:1)

我喜欢CLR Profiler.我不会通过在此处复制文档来浪费空间,但听起来它正是您正在寻找的。