代码之家  ›  专栏  ›  技术社区  ›  Maltrap

正在寻找免费的源代码分析器(函数依赖树)[已关闭]

  •  4
  • Maltrap  · 技术社区  · 16 年前

    有人知道我在哪里可以找到在Windows上运行的分析C源代码并输出函数依赖树的实用程序/应用程序吗?

    我正在寻找的是这样的东西:

    打印字符串->打印字符->PrintByte->输出函数

    5 回复  |  直到 16 年前
        1
  •  7
  •   Mark Rushakoff    16 年前

    这几乎可以肯定是矫枉过正,但你可以用C、C++、PHP、Java、C#等语言来实现这一点 Doxygen (如果你有 Graphviz dot 安装)。 Here's a page with a sample call tree 由Doxygen/dot生成。

    Doxygen在Windows上运行良好,可以 output HTML and a few other formats .

        2
  •  1
  •   Ira Baxter    16 年前

    读取源代码但不理解深层语义意义上的编程语言的工具只能给你一个调用图的近似值。(如果调用发生在宏中怎么办?如果该调用发生在禁用的预处理器条件中怎么办呢?如果调用是间接的怎么办?)

    如果你想要一个准确的调用图,你需要一个工具,使用语言的全部知识来构建一个调用图。Frama-C(见另一个答案)AFAIK就是其中之一,尽管我不知道它是如何处理宏和间接调用的。

    DMS Software Reengineering Toolkit and its C front end 具有完整的C宏/预处理器处理能力,并为文件系统构建调用图。它在调用图构造中特别包括一个分析点,为您提供间接函数调用位置的保守近似值。看 example call graph 黑色弧线(直接呼叫)和蓝色弧线(保守分析)间接呼叫。

        3
  •  0
  •   Pascal Cuoq    16 年前

    许多工具都会生成这种调用图。Doxygen很可能对结果有最多的呈现选项,其核心是一个“有文化的编程”工具。 开源工具位于 http://frama-c.cea.fr/ 生成调用图(也是点格式),并尝试自动按“服务”对函数进行分组: http://img23.yfrog.com/img23/8180/9il.png

        4
  •  0
  •   Simon Peverett    16 年前

    CodeInsight是一个商业编辑器,具有CTAGS/CSCOPE的功能。它还可以显示调用树图(以及几乎任何其他关系)。

        5
  •  0
  •   Michael Kohne    16 年前

    Source Navigator似乎再次处于开发阶段(SourceNav NG的最新版本是在今年2月发布的)。源导航器可以为您提供调用树、类依赖关系等。我没有试过最近的版本。适用于windows或X11。

    http://sourcenav.berlios.de/