问题标签 [cppcheck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3466 浏览

cppcheck - 如何获取 cppcheck 的有效二进制路径?

我正在尝试从该网站安装 cppcheclipse:

http://code.google.com/a/eclipselabs.org/p/cppcheclipse/wiki/Installation

我已经按照那里的说明进行操作,但是,在尝试配置它时,它说没有有效的二进制路径。

我的问题是如何获得有效的二进制路径?

谢谢

0 投票
3 回答
58291 浏览

c++ - 如何使用 CMAKE_EXPORT_COMPILE_COMMANDS?

我一直在尝试按照此工具的帮助中的建议使用clang-modernizewith 。CMAKE_EXPORT_COMPILE_COMMANDS

使用此选项,cmake 会生成一个 JSON 文件,其中包含编译信息,例如包含路径(另请参阅)。

此变量在 cmake 的命令行上被接受,但cmake --help-variable CMAKE_EXPORT_COMPILE_COMMANDS不起作用(与此邮件列表发布一致)。

有人知道如何使用它吗?

我也可以将它与 cppcheck 一起使用。

更多信息

我在一个clang 开发者论坛上发现这个 cmake 功能并非在所有生成器上都可用。这在未来可能会改变,同时我的问题仍然存在,如果我使用 Visual Studio 以外的其他生成器,我也会尝试看看会发生什么。

0 投票
1 回答
479 浏览

c++ - CPPCheck 返回不一致的结果

我已经为一个包含一堆库的大型项目设置了 CPPCheck (v1.6.1)。

当我检查图书馆时,我会遇到一些我感兴趣的检查失败,一切都很好。但是,此时我只有一个文本文件列表,其中包含我通过 '--file-list=...' 传递的那个库中的所有 *.cpp 和 *.h

当然,我确实收到了一些关于缺少包含的错误,因为这个库(比如 MyLibA)包含来自我的另一个库(MyLibB)的文件。

所以我现在构建一个文本文件,其中包含来自 MyLibB 的所有包含路径,并通过“--includes-file=...”将其传递给 cppcheck。

在这一点上,我得到了一些关于 MyLibB 中的标头的 cpp 失败,这并不意外,但是关于 MyLibA 报告的所有错误都不再报告。

这是一个错误还是我做错了什么?

0 投票
2 回答
1736 浏览

jenkins - 如何在 CppCheck 中从命令行运行保存的项目

我在 CppCheck 中创建了一个项目,CppCheck_MainRls.cppcheck 其中包含多个目录,我可以从 gui 运行该项目并且它正在工作。我的项目很大,所以我只需要几个目录即可通过 CppCheck 并将结果导出到 xml 文件中(稍后由 jenkins 读取)

当前的命令行是:

这对于“AllShared”目录非常有用,我如何更改它以读取我的项目文件?

0 投票
1 回答
917 浏览

xml - 如何对 Jenkins 的 CppCheck XML 输出进行排序?

来自:XSLT 排序 - 如何使用属性对父节点内的 xml 子节点进行排序

我正在使用 Jenkins 的 CppCheck 插件来解析 XML 日志文件。但是 CppCheck 将所有内容按原样放置,并且没有以任何方式排序。我想按“位置”标签对 XML 日志文件进行排序。

tl;dr:XML 层次结构是“结果/错误/错误/位置”,我想根据“位置/@file”和“位置/@line”对“错误”进行排序

我正在使用这个:

使用以下 XLST 转换规则:

但它不起作用。CppCheck 产生的是:

我想得到什么:

我目前得到的仍然是未排序的(XMLStarlet 将我的第一条错误消息放在一行中):

不太好。

我是 XML 转换的新手,所以欢迎任何帮助。

感谢您的反馈...

0 投票
1 回答
4252 浏览

c++ - 为什么 cppcheck 说“函数参数应该通过引用传递”?

这是 cppcheck show warning "[event.cpp:20]: (performance) Function parameter 'path' should be pass by reference." 的代码。

但包括字符串参数在内的其他代码不会显示此警告,例如:

为什么?

0 投票
1 回答
239 浏览

c - 更改 cppcheck 分配/释放函数名称

我有一个用包装器编写的用于动态内存分配的源代码。

就像是:

这样做是为了确保可移植性,并且由于代码是第三方的,因此问题是修复错误而不是全部重写。

我想用cppcheck验证代码,但是由于cppcheck不解析函数调用,所以不会发现内存分配错误。

有一种方法可以更改 cppcheck 函数以进行内存分配/释放,因此它将检查包装器而不是标准函数?

0 投票
2 回答
6752 浏览

c++ - How do I fix this error with allocation and deallocation mismatch?

Cppcheck report as an error "Mismatching allocation and deallocation: cname" for the line with delete cname;. I don't see what the problem with using my version of code is - it looks working.

Is my code wrong? How do I fix it? And what are the consequences of using my code?

0 投票
0 回答
650 浏览

android - 如何交叉编译cppcheck?

我正在尝试使用独立的 NDK 工具链(gcc 4.8)交叉编译适用于 Android 的 CppCheck:

它似乎可以编译文件,但无法链接到可执行文件(下面跳过了大多数错误):

我应该怎么办?

0 投票
1 回答
722 浏览

c++ - 使 cppcheck 跳过 PACKAGE 定义

我正在使用 cppcheck 1.64 的 GUI 版本对 C++-Builde-6 代码进行静态代码分析。对于 DLL 导出和导入,定义PACKAGE是必要的:

cppcheck遇到就停止,PACKAGE因为不知道是什么意思:

未处理代码“class PACKAGE TAppInfoDialog {”。您可以使用 -I 或 --include 添加对此代码的处理。

...这当然意味着整个班级都没有被检查。如果我可以让 cppcheck简单地忽略PACKAGE“关键字”,它会做完全正确的事情,但怎么做呢?通过包含路径包含其原始定义似乎不是一个选项:cppcheck 然后告诉我很多关于VCL 框架的标头的信息,我无法更改...

该手册没有描述这样做的选项,谷歌没有帮助,所以还没有答案。

在 cppcheck 问题跟踪器中,我发现了类似的问题#4707(Microsoft 'abstract' and 'sealed' extension for class)—— cppcheck。在这里,主要开发人员建议创建一个文件并(预先?)将其包含到 cppcheck 运行中,但我使用的是 GUI 版本,并且没有包含单个文件的选项。所以我尝试在我的项目选项的 include 部分(一个 XML 文件)中添加一个 director,然后我将相应的行编辑为一个文件规范,但这显然是无稽之谈,因为该部分包含包含路径

接下来我可以尝试什么?