5

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

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

4

4 回答 4

3

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

序列可视化

http://www.codeplex.com/sequenceviz

“SequenceViz 是一种通过对 .NET 程序集进行逆向工程来生成序列图的工具。虽然它在以后的版本中做得更多。”

有一个独立版本和一个作为反射器插件的实现。

替代文本 http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=sequenceviz&DownloadId=44432

于 2008-12-08T08:26:04.583 回答
1

分析 CLR 是 .NET Profiling API 的用途,因此它似乎非常适合您的需要。大多数分析器产品都基于它。但是你必须编写非托管代码,urk。

如果您只想记录方法的进入/退出,也可以使用 Cecil,而且非常简单。

编辑:

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

于 2008-12-08T08:35:09.913 回答
1

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

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

于 2008-12-08T09:01:05.963 回答
1

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

于 2009-01-07T22:52:00.530 回答