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