编写cppcheck的自定义规则

时间:2015-06-20 13:59:36

标签: c++ static-code-analysis cppcheck

我正在使用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?

1 个答案:

答案 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。那么你有这些选择:

  • 使用--dump并编写自己的自定义脚本来读取输出数据(xml)。
  • 编写C ++代码并将其编译为Cppcheck。这是相对简单的imho,但要求你自己编译Cppcheck。