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

Bla*_*ise 23 c++ static-analysis error-suppression cppcheck

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

// cppcheck-suppress "suppressed_error_id"
Run Code Online (Sandbox Code Playgroud)

And*_*wel 21

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

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

--template "{file}({line}): {severity} ({id}): {message}"
Run Code Online (Sandbox Code Playgroud)

这将产生如下输出:

s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY
Run Code Online (Sandbox Code Playgroud)

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

// cppcheck-suppress bufferAccessOutOfBounds
Run Code Online (Sandbox Code Playgroud)

到源文件中的上一行.


小智 17

根据cppcheck的帮助:

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

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

  • 您好,只是使用最新的cppcheck版本1.44测试它,它就像一个魅力.使用cppcheck-suppress时必须记住的事项:1.将"// cppcheck-suppress <id>"放入要抑制错误的行之前的新行中.2.提供正确的完整路径到cppcheck(我用/home/mycode/other_dir/../test.cpp错了一个)3.享受警告/问题免费cppcheck报告:-)非常感谢Neil. (3认同)