如何为C ++代码使用CPPCHECK的内联抑制过滤器选项?
-
23-10-2019 - |
题
我想使用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”。
不隶属于 StackOverflow