- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
一堆冒烟的意大利面条刚落在我的 table 上,我的任务是理解它(这样我就可以重构/重新实现它)。
代码是C,还有一堆乱七八糟的全局变量、结构类型和函数调用。
我想用以下信息绘制代码图:
- 调用图
- 哪些结构类型用于哪些函数
- 在什么函数中使用了哪个全局变量
希望这可以更容易地识别连接的组件,并将它们提取到单独的模块中。
出于类似的目的,我尝试了以下软件:
- ncc
- 标签
- codeviz/gengraph
- 氧气
- 埃及
- 流量
编辑 2:
- 框架-c
- 导航器
- 明白
这些缺点要么是
a) 要求我能够编译代码。我的代码无法编译,因为缺少部分源代码。
b) 预处理器宏的问题(比如 cflow,它想要执行 #if 语句的两个分支)。通过 cpp 运行它会弄乱行号。
c)我出于某种原因无法让软件做我想做的事情(比如doxygen;调用图生成的文档不容易找到,而且因为它似乎并没有绘制变量/数据类型,花更多时间学习 doxygen 的配置选项可能不值得)。编辑:我确实关注了 a these Doxygen instrcutions , 但它只绘制头文件依赖关系。
我在 Linux 上,所以如果该软件适用于 Linux 和免费软件,那将是一个巨大的优势。不确定我的老板是否理解购买可视化工具的必要性:-(
例如:列出在哪些函数中引用符号(=函数、变量、类型)的命令行工具会有很大帮助(如 addr2line,但对于类型/变量名称/函数和源代码)。
//T
最佳答案
我投票给 gnu global .它结合了 ctags/cscope 的所有功能以及生成完全索引的 html 的可能性,允许您在您喜欢的浏览器中浏览代码。在 apache 中启动它,您将拥有一个任何人都可以访问的网络服务,包括完整的搜索功能。
它很好地集成到 emacs/vim/甚至 bash-shell 中,您可以直接从 shell-prompt 中使用它。
要查看它在 Linux 内核上的运行情况,请访问 this
将其与圈复杂度工具相结合 plugin for eclipse它计算代码的复杂性。除了它可以处理的圈复杂度之外:
...您应该拥有所需的一切。
关于c - 意大利面条代码可视化软件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6826382/
我是一名优秀的程序员,十分优秀!