创建调用堆栈图
我们刚刚进入了一个需要我们进入代码的大项目(duh)。
我们使用不同的方法来熟悉它,断点等。但是我们发现一种方法是创建应用程序的调用树,这是最简单/最快速的方法?
按代码?插件?手动?
该项目是一个C#Windows应用程序。
答案 0 :(得分:3)
使用静态分析器NDepend,您可以获得静态方法call graph,如下所示。 免责声明:我是该工具的开发人员之一
为此,您只需要将结果导出到CQLinq code query:
这样的代码查询,可以为任何方法实际生成,这要归功于下面的右键菜单。
答案 1 :(得分:1)
每当我开始一份新工作(经常是我作为承包商)时,我会花两到三天时间阅读存储库中的每个源文件,并在一个简单的文本文件中记录每个类的注释。这是非常费力的,但这意味着你可以很好地了解项目是如何组合在一起的,并且当你需要找到一个可以做某些事情的类时,你有一个可靠的地图。
Altought我在开始一个项目时喜欢UML /图表我个人在检查现有代码时并没有发现它们。
答案 2 :(得分:1)
不能直接回答您的问题,但NDepend是获得100英尺代码库视图的好工具,它使您能够深入了解类(以及许多其他功能)之间的关系
答案 3 :(得分:0)
编辑:我相信微软的CLR Profiler能够显示正在运行的应用程序的调用树。如果这还不够,我已经离开了我在下面发布的链接,以防您想要开始自定义解决方案。
Here is a CodeProject article可能会指出您正确的方向:
这里提供的下载是Visual Studio 2008 C#项目简单 实用程序列出用户函数调用 C#代码中的树。
这个调用树列表似乎工作正常 对于我的编码风格,但会 其他一些人可能不可靠 编码风格。它在这里提供 有两个想法:第一,一些 程序员可能会发现它很有用; 第二,如果,我会很感激 在C#上达到速度的人 解析会升级它 合并一个准确的C#解析器 结果是一个改进的实用程序 无论编码风格如何都是可靠的
源代码可供下载 - 也许您可以将其作为自定义解决方案的起点。
答案 4 :(得分:0)
答案 5 :(得分:0)
不是一个卡住的记录,但如果我让它运行并暂停几次,并且每次捕获调用堆栈,这给了我一个真实的良好的呼叫结构图片,占了最多的时间。然而,它并没有给我快速发生的事情的调用结构。