问题标签 [klocwork]
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.
c - 非空终止字符串 - 没有可理解原因的 KlocWork 错误
我最近安装了“klocwork”并试图摆脱现有代码上的错误。显示的错误似乎很简单。终止时没有 null char * _p_
。我手动添加了一个空终止(即使没有必要),但它不喜欢 Klocwork。有任何想法吗?
确切的信息是:-
错误终止的字符串 ' p ' 会导致 p 中的缓冲区溢出。
==================================================== ========= 大家好,感谢您的回答,但似乎比这更晦涩难懂。我已将代码改进为这个简单的情况:- 当代码全部编写在一个函数中时,没有错误,而当分配部分包含在函数中(以及作为参数传递的文本)时,Klocwork 错误返回。请参阅此代码:- 没有错误的版本:-
而在 /*++++ */ 之间获取代码并将其包装在函数中时,会返回上述 KlocWork 错误。
因此,
有任何想法吗?
c - 非空终止字符串误报?
Klocwork 正在发出警报,这似乎是一个错误的警报。它提到的错误描述了我们代码中大约 80% 的错误。请指教,
特此是一个片段集(释义):-
c - ABR - Klocwork 错误警报和错误处理
Klocwork 报告以下错误:-
“ABR – 缓冲区溢出,'oidsp' 的数组索引可能超出范围。大小为 64 的数组 'oidsp' 可能使用索引值 -2..-1。”
对于这一行:-
当 check_index_lower_legality 是:-
但是没有错误:-(check_index_lower_legality
顺便说一句,这是一个不正确的答案,至于 -2 或 -1 的偏移值,运行时会出现真正的错误。
有任何想法吗?
c - 项目配置问题如何为每个项目指定一个唯一的-kwcc_config.xml?
文件 kwcc_config.xml 包含我们项目使用的特定编译器的定义和包含路径。
由于不同项目的环境不同,我们需要不同的项目定义和路径。
是否可以选择为每个项目定义此类文件?如果是这样,我如何为每个项目分配 kwcc_config.xml 文件?
c - Klocwork 是否检测到从未调用过的函数?
我的代码是旧代码中不同部分的混合。
我想删除所有从未使用过的函数以保持代码简单。
Klocwork 是工具吗?我该怎么做?
谢谢,
莫舍。
c - Klocwork & c - 实际使用的源代码行数
我的项目是由大量的旧代码组成的。
我怎么知道实际使用了多少行代码?
Klocwork 可以给我这个答案吗?我注意到 Klocwork 拥有项目中的行数(SLOC) - 但它是实际使用的行数 - 还是它可以包含“死代码”区域?
谢谢,
摩西
c++ - Klocwork(或其他工具)可以知道类型、typedef 和#define 指令吗?
我一直在寻找工具来帮助检测阻止程序作为 64 位代码正常运行的错误。最近,我一直在玩弄 Klocwork 及其自定义检查器功能,它让我可以使用 XPath 将源代码作为树导航。这作为正则表达式的“更智能”替代品很有用,但我无法让它知道类型。
例如,假设我想查找for
使用 anint
或 along
进行计数的循环的每个实例。下面的代码很容易找到。
搜索此代码很简单,因为变量定义就在循环内。但是,请考虑以下示例。
这很难找到,因为变量定义与循环是分开的,而且必要的 XPath 表达式要么笨重,要么容易出错。
那么,自定义 Klocwork 规则能否找到像这样需要类型感知的表达式,包括解析typedef
和#define
语句?有没有其他工具可以做到这一点?
编辑 1:考虑以下示例。
ahmeddirie 提供的解决方案找到了第一个循环,因为 的类型i
被明确定义为int
。但是,没有找到第二个循环,因为 typedef 已经掩盖了基础类型。j
哪些工具以将第二个循环变量识别为确实是 的方式跟踪类型int
?
klocwork - 默认禁用 Klocwork 连续分析
我们如何在默认情况下禁用 Klocwork 中的“连续分析”选项?
我知道如何为 Eclipse 插件和 .sln 文件禁用它,这可以正常工作,但这是每次用户创建 .sln 文件或 eclipse 工作空间时必须执行的附加步骤。他们最终会签出许可证来执行此操作(除非他们直接修改 local.properties 文件)。
有没有办法将其设置为全局默认关闭,而无需单独修改每个 MS Visual Studio / Eclipse 工作区?
谢谢!
static-analysis - 从 Klocwork Insight 运行中自动生成 TFS 工作项
我们考虑在不久的将来使用 Klocwork Insight 进行代码分析,并且只是将我们的源代码迁移到 Team Foundation Server 2010。
是否可以告诉 Klocwork为发现的问题创建工作项?还是我需要创建一个脚本来执行此操作?
TFS 2010 被列为“Klocwork Inspect 支持的软件配置管理 (SCM) 系统”,但这可能仅指从 TFS 获取代码的能力。可悲的是,该网站没有进一步详细说明。
关于这个话题的任何想法?提前致谢。
[编辑] 详细说明:
在 TFS 上投入生产后,可能会有一个初始阶段,即将工作区连接到 Klocwork 服务器并单独运行 Klocwork,只有自己的 IDE 来处理其输出。对于大问题,我们必须手动创建 WI,就像我们现在所做的一样(使用另一个问题工具)。
不久之后,我们可能会将 Klocwork 包含到我们每周构建的构建工作流程中,因此 TFS 至少会知道它的退出状态。我想如果 Klocwork “失败”,TFS 可以创建一个 WI,但是它可以为每个严重程度 x 及以上的问题或具有特定 ID 的问题创建一个 WI?
c - 奇怪的 Klockwork 发现(缓冲区溢出)
我想不通。我有以下代码:
Klockwork 告诉我
缓冲区溢出,“表”的数组索引可能超出范围。大小为 1000(调整后大小为 250)的数组“表”可以使用索引值 250..999。
这里真的有问题吗?如果没有,这似乎是一个非常明显的误报。