获取C++函数列表
发布时间
阅读量:
阅读量
今日在此与各位交流一种获取C++文件中函数列表的方法,该思路及启发源自于同事小W自主研发的C++代码覆盖率工具。其核心原理是通过对现有代码进行插桩处理,当程序执行至相应函数时,对该函数实施标记操作,从而最终实现对代码函数覆盖程度的统计分析。
如图所示:程序源代码

完成桩插入操作后的源代码

以下为改写后的内容:
基本原理大致如此,此处不再展开详述。
接下来需要重点关注的问题是如何对cpp文件中的函数进行解析并提取出来。
最初考虑的方案是借助编译原理的相关理念,通过设定特定规则来实现函数的识别,例如:通过匹配“{”、“}”、“(”、“)”等符号来判断函数的起始与终止位置。初期这种方法效果较为理想,能够快速识别出较为简单的代码结构。然而,在实际应用于输入法项目的过程中,逐渐暴露出越来越多的问题。如图所示,在函数声明中使用了宏定义的情况下,该方法无法正确识别函数名称。
- 当函数定义中包含宏定
全部评论 (0)
还没有任何评论哟~
