65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 程序的调用树

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.47/5 (6投票s)

2008 年 12 月 29 日

CPOL

2分钟阅读

viewsIcon

105735

downloadIcon

849

一个简单的 C# 用户函数调用树列表生成器。

引言

这里提供的下载是一个 Visual Studio 2008 C# 项目,用于一个简单的实用程序,用于列出 C# 代码中的用户函数调用树。

这个调用树列表生成器似乎对我的编码风格有效,但对于其他一些编码风格来说可能会不可靠。 这里提供它有两个想法:首先,一些程序员可能会觉得它有用;其次,如果有人精通 C# 解析,并能通过结合一个准确的 C# 解析器来升级它,并开发出一个无论编码风格如何都可靠的改进的实用程序,我将不胜感激。

背景

几年前,我使用 SCO C 编译器创建了一个简单的实用程序,用于显示我在 Progress 语言中开发的程序代码中用户编写的函数的调用树。 后来,当我安装了新版本的 SCO C 编译器时,我很恼火地发现 SCO 从编译器及其运行时支持中删除了编译器之前提供的简单内存数据库,因此我的调用树列表生成器不再起作用。

最近,我再次感到需要能够查看我代码的调用树。 在网络上搜索一个易于使用的东西时,我一无所获。 毫无疑问,有一些 Linux 和 GNU 实用程序非常出色,并且对于在那个世界工作的人来说会很方便,但是为我设置那个环境的开销对我来说似乎对于那些产品来说不划算。 我找到了一两个 C# 语言解析器,但我不喜欢解析,而且,使用其中一个的学习曲线似乎与我想要的相比不成比例。 所以,我花了一些时间,并使用 .NET 的正则表达式类开发了下载中提供的 C# 用户函数调用树列表生成器。

Using the Code

假设 .NET 3.5 支持可用,可以直接运行 \bin\debug 目录中的可执行文件。 如果您有 Visual Studio 2008,您可以在调试器中运行该项目,并且可能可以将其重新定位到早期版本的 .NET。

每次在 “2nd:..” 文本框中输入一个根函数,然后单击右上角的按钮 “3rd:..” 生成其树时,都会提示您输入 .call_tree 文件的位置和名称,以输出窗口中显示的调用树的副本。 如果您指定一个现有的 .call_tree 文件,则新树将附加到该文件。

以下是用户界面的一个示例(先显示窗口的左侧,然后显示右侧,因为 CodeProject 将图像限制为 600 像素的宽度)

call_tree_left_side_2.png

call_tree_right_side_2.png

© . All rights reserved.