如何在C ++代码中使用cppcheck的内联抑制过滤器选项?

时间:2010-06-02 09:17:49

标签: c++ static-analysis error-suppression cppcheck

我想使用Cppcheck进行C ++代码的静态代码分析。我了解到我可以使用--inline-suppr命令抑制某种警告。 但是,我无法在评论中找到“suppress_error_id”:

// cppcheck-suppress "suppressed_error_id"

4 个答案:

答案 0 :(得分:20)

您可以更改输出模板以从命令行显示错误ID,这非常简洁。

对于显示错误ID的Visual Studio格式输出,请将其添加到命令行:

--template "{file}({line}): {severity} ({id}): {message}"

这将产生如下输出:

s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY

然后可以通过添加以下行来抑制:

// cppcheck-suppress bufferAccessOutOfBounds

到源文件中的上一行。

答案 1 :(得分:13)

根据cppcheck的帮助:

  

错误ID是您想要的ID   压制。获得它的最简单方法   是使用--xml命令行标志。   从中复制并粘贴id字符串   xml输出。

因此,对包含--xml标志错误的某些代码运行cppcheck,然后查看生成的XML文件以查找其名称。

答案 2 :(得分:3)

根据cppcheck man page,您可以使用--template选项更改默认输出以包含ID,例如

cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'

答案 3 :(得分:0)

如果您正在使用GUI,则可以右键单击要禁止的消息以弹出菜单。选择“复制邮件ID”。将消息ID粘贴到代码中代替“suppress_error_id”。