问题标签 [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 投票
1 回答
781 浏览

c++ - 将字符串从 std::string 转换为 const char * 时出现数据丢失问题

在此函数中,string作为参数传递(将大量数据作为字符串)...

SendBytes 方法是这样定义的

尝试打印 sStr 的值以检查它是否具有正确的数据。

然后转换std::stringconst char *

转换后,尝试打印 cStr 的值。但它(cStr)实际上包含实际数据的 5%(sStr)......

为了获得整个数据,我需要做什么?

有人可以在这方面指导我吗?

0 投票
1 回答
950 浏览

memset - cppcheck 报告“缓冲区访问越界”

静态代码分析工具cppcheck在下面的代码中报了一个严重的错误:不知道是什么问题。

上面的代码似乎没有任何问题。任何想法为什么这些被捡起以及如何解决这个问题?先感谢您。

0 投票
1 回答
987 浏览

c++ - SonarQube 显示问题但 0 天技术债务

我正在使用 Cppcheck 对我的 C++ 项目运行分析,然后将结果加载到 SonarQube。SonarQube 正在显示问题,但技术债务显示为 0。

我怎样才能让技术债务正确显示?

我正在使用以下命令运行 C​​ppcheck:

我的 sonar-project.properties 文件:

这是我运行它的测试代码:

SonarQube 显示此代码的 3 个问题和 0 个技术债务。我还需要做什么来显示技术债务?

我正在运行 SonarQube 4.4 版和 Sonar Runner 2.3 版

我已经使用调试日志运行了 sonar-runner,并且在加载 Cppcheck 结果时没有看到任何错误。

Cppcheck 版本 1.63

我还应该提到这是使用 C++ Community 插件版本 0.9.0

0 投票
2 回答
137 浏览

c++ - 将指向常量的指针作为参数传递时出现问题

例如,使用按地址调用概念来检索函数调用中发生的所有数据更改......

main(),

i) 传递两个参数 i)int 指针 ii) 指向常量的指针 -> 它不能改变它所持有的值...

ii) 在函数调用中更改 int * 的值并将一些值分配给 const void *。

*最后我试图打印值main()

*正确获取 int 指针值(没问题)

* 将 void 指针值设为 NULL..

要求:

需要main()像这样获得输出

main::ajskdffllagkdjdjdhdjhd(我的意思是说我需要像这样打印 void * 值)

但我得到的价值是 main:: NULL

为了获得预期的输出,我需要做什么?

0 投票
2 回答
3869 浏览

c++ - 如何配置 cppcheck 以检测 linux 源代码中的内存泄漏

我想尝试一些开源静态分析工具来检查它们在检测 linux 源代码泄漏方面的性能。我从 cppchecker 开始。在 linux 中,大多数内存分配调用是通过 kmalloc()、kzalloc() 等函数进行的,相应的 free 函数是 kfree()。如何配置 cppchecker 来跟踪 kmalloc 调用而不是默认的 malloc() 调用?有一种叫做创建新配置文件的东西,我们可以在其中定义用户首选项,但我不知道该怎么做。

此外,作为上述问题的后续行动,cppcheck 是否执行内存泄漏检测的过程间分析?我可以为此目的使用哪些其他开源静态分析工具?

0 投票
0 回答
328 浏览

visual-studio - 在 tfs 构建中自动运行 cppcheck

我想成为cppcheck构建过程的一部分tfs。向预构建脚本添加命令是运行它的唯一方法吗?我正在使用PowerShell脚本并添加了以下行:

但是,如果不将我的更改签入 Git 项目,我就无法对其进行测试。同样从 Visual Studio 2013 运行它,我在哪里可以看到这个检查的结果?

0 投票
2 回答
1013 浏览

c++ - 何时量化 C sscanf 函数中忽略的模式匹配

Cppcheck 1.67在我的源代码中在这一行提出了可移植性问题:

这是我从中得到的信息:

在某些版本的 libc 上,没有字段宽度限制的 scanf 可能会因大量输入数据而崩溃。

格式字符串的初衷是接受两个整数之间的三个可能的限制字符之一,而今天 - 感谢 Cppcheck [1] - 我看到它%*[,;.]甚至接受限制字符的字符串。但是我怀疑我的格式字符串可能会导致崩溃,因为无限制的部分被忽略了。

缓冲区溢出是否可能存在问题? ...也许在幕后?


[1] 如何在远视和失明之间迷路:

我试图通过%1*[,;.](在一些 API doc之后)修复它,但 Cppcheck 坚持这个问题,所以我也尝试%*1[,;.]了同样的“成功”。看来我必须暂时压制它了……

0 投票
1 回答
1717 浏览

c++ - Why does CppCheck give an array access out of bounds error for this static const array?

CppCheck 1.67 has identified and array accessed out of bounds error on one of my projects. I didn't think the code was wrong, so I have stripped down the code to the bare minimum example that still raises the same error. Why does CppCheck give the following error for the first C++ example (inside a namespace) but not for the second example (without a namespace)?

Am I doing something wrong with the namespace on my array initialisation or is this an error in CppCheck?

Reported error: "Array 'testArray[5]' accessed at index 5, which is out of bounds."

No reported errors:

0 投票
1 回答
1067 浏览

c++ - 如何使用 cppcheck 忽略某些文件类型?

我使用 cppcheck 来分析我的 c++ 代码。我的源代码中有一些 .svg/.png 文件,这使得 cppcheck 报告了许多以下类型的错误:

fileName1.svg:2:错误:Cppcheck:定义这些宏时的字符数(()无效:''。

有没有一种简单的方法可以让 cppcheck 忽略某种类型的文件?

0 投票
1 回答
555 浏览

static-code-analysis - CppCheck 抑制过时的功能

我不能内联抑制来自 cppcheck 的 obsoleteFunctiosgets 警告。我试过了:

// cppcheck-suppress obsoleteFunctionsgets

没有成功。

你们中有人遇到过这个警告吗?有什么提示吗?谢谢。