编写cppcheck的自定义规则

T M*_*T M 6 c++ static-code-analysis cppcheck

我正在使用cppcheck进行静态分析.为了加快审查过程,我想设置cppcheck来查找一些自定义规则,例如检查geter函数是否定义为const.

如果有人有为cppcheck编写自定义规则的经验,那么你能提供一些编写自定义规则的例子吗?

PS我已经做了一些研究,找到了一个工具,可以让我编写自定义规则,让审查过程更快.我找到了关于这个主题的这些链接

有哪些开源C++静态分析工具?

Windows上的C++静态代码分析工具

一个免费的工具,根据一组编码标准检查C/C++源代码?

Dan*_*äki 7

我是Cppcheck开发人员.

您也许可以使用--rule和--rule-file选项添加此类规则.也许你可以使用正则表达式,例如:

\sget[A-Za-z]+\(\)\s+{\s+return
Run Code Online (Sandbox Code Playgroud)

这取决于您的代码库.

如果您可以编写正则表达式,那么这是创建自定义规则的最直接,最简单的方法.

有关更多信息,请阅读此处的"编写规则"文章:http: //sourceforge.net/projects/cppcheck/files/Articles/

但是,您可能希望编写更复杂的规则,通过使用Cppcheck SymbolDatabase,tokenlist和语法树来搜索此类getter方法.你不能使用--rule和--rule-file.你有这些选择:

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