我正在使用cppcheck进行静态分析。为了加快审核流程,我想设置cppcheck来查找一些自定义规则, 例如,检查geter函数是否定义为const。
如果有人有为cppcheck编写自定义规则的经验,请提供一些编写自定义规则的示例吗?
P.S我做了一些研究,找到了一个工具,可以让我编写自定义规则,让审查过程更快。 我找到了关于这个主题的链接
What open source C++ static analysis tools are available?
C++ static code analysis tool on Windows
A free tool to check C/C++ source code against a set of coding standards?
答案 0 :(得分:7)
我是Cppcheck开发人员。
您也许可以使用--rule和--rule-file选项添加此类规则。也许你可以使用正则表达式,例如:
\sget[A-Za-z]+\(\)\s+{\s+return
这取决于您的代码库。
如果您可以编写正则表达式,那么这是创建自定义规则的最直接,最简单的方法。
有关详细信息,请阅读"编写规则"文章在这里: http://sourceforge.net/projects/cppcheck/files/Articles/
但是,您可能希望编写更复杂的规则,通过使用Cppcheck SymbolDatabase,tokenlist和语法树来搜索此类getter方法。你不能使用--rule和--rule-file。那么你有这些选择: