c - 创建 : <Method Name> <Num of times called> for a particular project directory list 的脚本

标签 c statistics scripting

有谁知道一个脚本可以获取一个列表,该列表能够告诉我 C 项目最常调用的函数?

方法1 391
方法2 23
方法3 12

更好的是可以自定义以在方法名称“get”中要求关键字。

我尽量不重新发明轮子,而是自己编写一个简单的脚本来完成。使用 grep 或 awk 可能是一种简单的方法。我可以编写正则表达式来匹配函数调用名称。 Eclipse 插件将是理想的选择。

我不是在寻找分析器。我想要这种方法的原因是我需要为嵌入式项目优化程序空间。我倾向于用 getter 封装我的成员变量,但可能需要使用 extern 并直接访问最常用的成员以减少空间。

最佳答案

一种方法是运行 Doxygen在源基地。您需要将其配置为提取所有函数和类,除非您已经在使用 Doxygen,因为默认情况下它会忽略未记录的实体。

如果您还有 AT&T GraphViz安装后,您可以获得为每个函数绘制的漂亮的调用图和调用图。但我认为没有一个表格可以按调用次数对此进行总结。

但是,有几种非文档输出格式可供选择,包括 Perl 模块和 XML。应该可以解析其中一个来开发您想要的列表,而且解析该信息几乎肯定比拼凑足够多的 C++ 前端以通过蛮力获得正确答案要容易得多。

还有一个 GCC 的 XML 后端 float 在某个地方,它基本上转储了 XML 中的语法树......我最近被它绊倒了,但不记得具体在哪里。

关于c - 创建 : <Method Name> <Num of times called> for a particular project directory list 的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/891718/

相关文章:

c - 不同的可能程序输出?

c - 从 VC++ 2008 编译器读取控制台输入 :Error

c - 如何创建一个函数并获得先前数字的累加和?

macos - 有什么方法可以在 AppleScript 中暂时暂停脚本吗?

c - 通过终端在 OS X 计算机上安装新库

c# - C#计算滚动窗口Max DrawDown

http - 推荐链接 - 它是如何工作的?

asp.net-mvc - 实现我自己的统计引擎并记录每次网站访问?

PHP 替代品?

c++ - 使用 Lua + SWIG 将成员动态添加到类中