【问题标题】:How do I create rules for CPPCHECK如何为 CPPCHECK 创建规则
【发布时间】:2015-07-09 09:05:19
【问题描述】:

我为 cpp 检查创建了以下规则文件:

<?xml version="1.0"?>
<rule version="1">
<pattern>virtual .* \( .*dword .* \)</pattern>
<message>
<id>virtual function</id>
<summary>Possible error </summary>
</message>
</rule>

此规则仅检测代码中的第一个匹配项 会有什么问题。

【问题讨论】:

  • 不清楚你在这里问什么,所以请用例子更详细地解释你的问题。但首先,尝试将模式中的每个 .* 替换为 .*?
  • 使用这种模式能够在我的代码中获取带有 dword 参数的虚函数,但它只检测一次,即使有几个带有 dword 参数的虚函数,如果我们第一个注释,下一个将得到

标签: pcre rule cppcheck


【解决方案1】:

我是一名 Cppcheck 开发人员。

我不确定 .. 但如果 pcre 是贪婪的,那么匹配将包含来自第一个虚函数的所有代码,直到代码中的最后一个 ')'。

不要使用 .* ,也许 [^)]* 效果更好。

如果你在命令行上使用 --rule 你可以看到它匹配的内容。

【讨论】:

  • [^)]* 表示我需要检查 DWORD 是否作为 args 存在于虚拟函数中
猜你喜欢
  • 2013-02-17
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
  • 2020-03-10
  • 1970-01-01
相关资源
最近更新 更多