为cppcheck编写自定义规则
我正在使用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?
我是一个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。
Hi @DanielMarjamäki感谢您的回复。因此,如您所提供的文档中所写的规则是XML文件,有没有办法使用此自定义创建的规则文件与cppcheck GUI?我在哪里可以在GUI中设置新规则? –
目前,您不能在GUI中使用规则。我认为改进GUI会相对容易,但没有人想这样做。 –
好的,谢谢我将尝试使用Windows cmd终端。 –
嗨,TM_。针对离线资源的请求和工具建议请求对于*是无关紧要的。 –
嗨@DrewDormann其实我的问题是为cppcheck编写自定义规则。如果即使只是提到脱离主题,我也可以从我的问题中删除这部分。 –
我敢打赌,这将有所帮助。我重新阅读你输入的每个句子并问自己*“这是个问题吗?”*我无法在任何地方找到问题。 –