2015-06-20 105 views
5

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

如果任何人有为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

嗨,TM_。针对离线资源的请求和工具建议请求对于stackoverflow是无关紧要的。 –

+1

嗨@DrewDormann其实我的问题是为cppcheck编写自定义规则。如果即使只是提到脱离主题,我也可以从我的问题中删除这部分。 –

+0

我敢打赌,这将有所帮助。我重新阅读你输入的每个句子并问自己*“这是个问题吗?”*我无法在任何地方找到问题。 –

回答

6

我是一个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。您有以下选择:

  • 使用 - 转储并编写您自己的自定义脚本来读取输出数据(xml)。
  • 编写C++代码并将其编译到Cppcheck中。这是非常简单的imho,但要求你自己编译Cppcheck。
+1

Hi @DanielMarjamäki感谢您的回复。因此,如您所提供的文档中所写的规则是XML文件,有没有办法使用此自定义创建的规则文件与cppcheck GUI?我在哪里可以在GUI中设置新规则? –

+1

目前,您不能在GUI中使用规则。我认为改进GUI会相对容易,但没有人想这样做。 –

+1

好的,谢谢我将尝试使用Windows cmd终端。 –