问题标签 [pvs-studio]

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 回答
42 浏览

pvs-studio - 范围分析和 V3022

考虑下面的代码:

预计前两个循环仅打印出第三和第二大整数。最后一个循环有一个错误,i会溢出int.MinValue并导致无限循环。

运行它会给出预期的输出。

PVS Studio 发出三个警告:

V3022 表达式 'i < int.MaxValue' 始终为真。

V3022 表达式 'i <= int.MaxValue - 1' 始终为真。

V3022 表达式 'i <= int.MaxValue' 始终为真。

正确报告了最后一个循环中的错误,但前两个警告是误报。

0 投票
3 回答
466 浏览

c++ - 使用了危险的幻数 N

PVS-Studio,静态代码分析器,用于以下代码

报告:

V112使用的危险幻数4...t const n = 4;. test.cpp 3

尽管 PVS-Studio 与 Visual Studio 2017 项目一起使用,并且对 32 位和 64 位都报告了相同的警告,但分析器 AFAIU 并未考虑这些构建配置。

我本来希望能更好地分析上下文并将上面的代码视为等同于这个

PVS-Studio 不为其发出任何诊断。

在上面的情况下,这个危险的魔法数字 N 使用过,误报吗?

上面两个代码示例没有被分析为等效的原因是什么?

0 投票
4 回答
4431 浏览

c++ - 表达式 'i < 0' 始终为假

对于以下代码段:

PVS-Studio 分析记录第一个条件的警告i < 0,如预期的那样:

V547 Expression 'i < 0' is always false. Unsigned type value is never < 0. test_cpp_vs2017.cpp 19

为什么 PVS 不发出任何关于第二个警告的警告i != -1,例如,报告它始终为真的可疑情况?

0 投票
1 回答
253 浏览

pvs-studio - 独立 PVS-Studio(免费)仍然计算剩余点击次数

我正在使用 PVS-Studio Standalone 版本 6.16.222236。我已经使用 How-To-Use-PVS-Studio-FREE.exe 在我的所有文件中添加了特殊注释,所以我认为我可以免费使用它而没有任何试用限制。

但是经过几次运行后,我看到了红色文本:“剩余点击次数:0(可以扩展)”并且我无法单击任何诊断。

我的问题是:这正常吗?所以 PVS-Studio 会免费分析一切,但点击次数仍然有限?我并不是说它不好或什么,我只是想知道这是否是预期的行为。

0 投票
1 回答
333 浏览

pvs-studio - 未安装 c++ 时启动时出错

启动 VS 15.3.1 时,我在活动日志中看到此错误。它似乎与 PVS 工作室有关,因为当我禁用扩展时它就消失了。

我只使用 C#,所以我没有安装任何 c++ 模块。单击确定消息后,我没有遇到任何其他异常。

我尝试禁用所有其他第三方扩展并重新启动 VS,并在启动时打开以下窗口:

  • C# 交互式
  • 错误列表
  • 任务列表
  • 命令窗口
  • 输出
  • 测试资源管理器
  • 解决方案资源管理器
  • 团队资源管理器
  • 首页

然后启用 PVS 并重新启动 VS:我收到错误消息

“Visual C++ 项目系统包”未正确加载。

然后我删除了组件缓存文件夹:我仍然收到错误。

使用ClearMEFComponentCache清理。重新启动PVS,现在我无法重现。

其他信息:我已经升级到 VS 15.3.2

  • 在运行 ClearMEFComponentCache 之前,我有几个文件夹%appdata%\Microsoft\VisualStudio,即14.015.0以及15.0_aaea4580文件ComponentCache夹所在的文件夹。现在我只有15.0_aaea4580文件夹。
  • VS 在管理员模式下打开。
0 投票
1 回答
116 浏览

c++ - 误报 V595 在针对 nullptr 进行验证之前使用了“_parent”指针

我将 PVS-Studio 用于我的项目Torrent File Editor。有一个误报。这里没有真正的问题,但我得到这样的错误:

torrent-file-editor/abstracttreenode.h:138: error: V595 The '_parent' pointer was utilized before it was verified against nullptr. Check lines: 138, 139.

代码片段:

这里 Q_ASSERT 只是 Debug 版本检查。在 Release 版本中不执行此类检查。对于 Release,我使用它_parent ? ... : ...来防止可能的崩溃。因此,在 Debug 版本中重复检查是完全可以的。

我用特别的评论来抑制这种误报。所以这不是问题,但认为 PVS-Studio 应该处理这种情况。

0 投票
1 回答
80 浏览

pvs-studio - PVS-Studio 在项目文件夹中创建临时文件

每次运行后,PVS-Studio 都会在项目文件夹中为每个选中的 cpp 文件创建一个 .cpp.PVS-Studio.cfg 文件。

并且在检查完成后它不会删除它们。手动或通过 git checkout 删除它们有点烦人。PVS-Studio 是否可以配置为在其他地方创建这些文件?

0 投票
1 回答
89 浏览

command-line - pvs-studio-analyzer 中 -a 选项的可能值

选项允许哪些值-a?文档没有足够的信息。它只说:

-a 模式,--分析模式模式(默认值:4)

      MODE 定义警告的类型。4 - 一般分析。

我试图在 pvs 网站上查找。但是什么也没发现。

0 投票
1 回答
120 浏览

c++ - 误报警告 PVS Studio:V821 性能下降。'rhs' 变量可以在较低级别的范围内构造

PVS Studio 6.17 (Windows 7, 64Bit, VS2017, C++-03) 似乎在遵循精简代码时给出错误警告

PVS工作室的警告是

V821 性能下降。'rhs' 变量可以在较低级别的范围内构造。

由于sstd::stack-type,而对应的算法要求rhs-element从栈中弹出,看来PVS-Studio是错误的。我错过了什么?

顺便一提:

PVS Studio 消息中有错字:

参考

0 投票
1 回答
277 浏览

pvs-studio - 如何将 pvs-studio 正确集成到内核模块 makefile 中?

我将使用 pvc-studio 检查简单的开源驱动程序,但到目前为止它还没有成功。我的系统是 Debian 4.6.0-amd64。我正在使用本机 x86_64 gcc 编译器。

使用命令运行

打印出来No compilation units found

我尝试将调用嵌入到makefile中,如下所示:

结果,我收到了许多与内核头文件相关的没有此类文件或目录的错误消息。

我的 .cfg 文件:

我做错了什么?如何正确执行?