我想使用 Cppcheck 对我的 C++ 代码进行静态代码分析。我了解到我可以使用命令抑制某种警告--inline-suppr
。但是,我找不到应该在评论中添加的“suppressed_error_id”:
// cppcheck-suppress "suppressed_error_id"
我想使用 Cppcheck 对我的 C++ 代码进行静态代码分析。我了解到我可以使用命令抑制某种警告--inline-suppr
。但是,我找不到应该在评论中添加的“suppressed_error_id”:
// cppcheck-suppress "suppressed_error_id"
您可以更改输出模板以从命令行显示错误 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 帮助:
错误 id 是您要抑制的 id。获取它的最简单方法是使用 --xml 命令行标志。从 xml 输出中复制并粘贴 id 字符串。
因此,对一些包含带有错误--xml
标志的代码运行 cppcheck,然后查看生成的 XML 文件以找到其名称。
根据cppcheck 手册页,您可以使用--template
选项更改默认输出以包含 id,例如
cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
如果您使用的是 GUI,则可以右键单击要禁止显示的消息以弹出菜单。选择“复制邮件 ID”。将消息 ID 粘贴到您的代码中以代替“suppressed_error_id”。