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

// cppcheck-suppress "suppressed_error_id"
有帮助吗?

解决方案

根据Cppcheck的帮助:

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

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

其他提示

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

到源文件中的上一行。

根据 Cppcheck Man页面, ,您可以使用 --template 将默认输出更改为包含ID的选项,例如

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top