30

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

// cppcheck-suppress "suppressed_error_id"
4

4 回答 4

24

您可以更改输出模板以从命令行显示错误 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

到源文件的上一行。

于 2011-07-07T15:07:05.377 回答
19

根据 cppcheck 帮助:

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

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

于 2010-06-02T09:25:30.447 回答
3

根据cppcheck 手册页,您可以使用--template选项更改默认输出以包含 id,例如

cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
于 2014-10-04T14:55:41.353 回答
0

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

于 2016-10-04T16:58:51.170 回答