10

我正在对 Linux 内核中一些非常长的函数(链接链接)进行学术研究。

对于该研究,我想使用一些代码流可视化工具,它能够绘制一个图形,其中每个顶点都是一个决策点,每个边都是一段代码,它以一种后续的方式运行。

你知道任何可以可视化 C 代码的优秀开源项目吗?

4

4 回答 4

10

也许像KCacheGrind这样的工具会有所帮助。它根据实际调用生成调用图,并且在没有实际运行程序的情况下无法预先生成调用图,这可能不适合您的需求,但它可能再次满足您的需求。

KCacheGrind 调用图

于 2009-07-24T15:19:18.830 回答
1

历史流对于跨多个版本的更改/差异非常整洁。

Codeplex 有一个项目,Dependency Visualizer,它也支持 C。

Gprof2Dot可以渲染 oprofile,这也可以获得动态信息。

CodeViz(静态工具)也可以工作。

如果你使用 gcc,gcc-xml 有一个introspector 插件也可以做到这一点。

于 2009-07-19T07:50:56.363 回答
1

您似乎想要获取 C 源代码的流程图(“决策”、“代码块”)。
像这样的C流程图

要正确地做到这一点,尤其是。对于 Linux 内核代码,我希望您必须首先预处理代码以摆脱宏和条件。我假设 GCC 会在内部构建这样的图表,并且您应该能够掌握该图表。

于 2009-07-21T04:58:56.947 回答
0

Doxygen做了一些“可视化”,
但您需要对代码进行一些处理才能使其可用。


另一个有趣的检查是lxr

Linux Cross Referencer是一个用于索引和展示源代码存储库的软件工具集。LXR 最初针对的是 Linux 源代码,但已证明可用于广泛的软件项目。lxr.linux.no目前正在运行 LXR 软件的实验分支。

于 2009-07-19T07:12:22.853 回答