问题标签 [splint]

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 投票
0 回答
410 浏览

c - Splint 静态代码分析分段错误

嘿,我正在尝试对我编写的 ac cqde 项目进行一些静态分析,但是夹板给了我一个错误

甚至不确定从哪里开始,有人有什么建议吗?基本上这个项目中的任何文件都会返回这个错误

0 投票
2 回答
237 浏览

debian - .splintrc 预处理器指令中的空白 -D

我想splint在 debian 稳定的环境中运行我的一些资源。
我需要给出预处理器指令-DUINT16_T='unsigned short',因为我经常需要它。我想把它放在我的.splintrc文件中。
从命令行运行时,splint -DUINT16_T='unsigned short' mysource.c它运行良好。如果将此行移到我的.splintrc文件中

splint通话结果

有没有人有解决方案?(请不要使用别名)。

为了进一步讨论,我将提供一个 mnwe (minimal not working example) hello.c,这可能会有所帮助:

该命令gcc -DUINT16_T='unsigned short' hello.c运行良好 - 当然也可以splint -DUINT16_T='unsigned short' hello.c声称

但同样,我怎样才能将这个 DEFINE 包含在我的.splintrc?

0 投票
1 回答
101 浏览

c - 如何触发 Splint 的抽象类型检查器?

我想使用 Splint 来检测typedef具有相同基础类型的 s 之间的隐式转换,例如在以下代码中:

看起来我可以为此使用Splint,但它不会产生任何警告。typedef即使将两个s都注释为abstract也不会触发它。

如何让 Splint 像这样进行“强”类型检查?

0 投票
0 回答
294 浏览

parsing - Splint:静态检查时的解析错误

我是静态检查的新手,我被分配了一项任务来对 C 代码进行静态检查。我可以自由选择任何一种工具,请记住该组织已经使用 lint,因此应该首选基于 lint 的工具。

我选择夹板是因为它是一个免费软件。(PC lint 和 Lint 是商业化的)

现在我尝试编译一个简单的 C 文件#include <unistd.h>

无法继续。我怎样才能得到这个工作?

我在某些地方读到夹板不支持 C99 标准,而有些地方说它支持。谁能告诉我是否应该重新考虑我的选择,因为我将使用 C99 格式。还有哪些与 lint/splint 非常相似的免费替代品?

0 投票
0 回答
88 浏览

php - filter_var 和 SplInt 怪癖

我假设这只是由于 SPL_Types 扩展的相对较新的状态。你会认为这会有可预测的反应。

结果:

0 投票
1 回答
151 浏览

c - 夹板:来自 strcpy() 的新存储?

我正在努力学习和更好地理解夹板,我想知道我从这段代码中得到的一个错误:

错误是:

将返回值分配给copy而不是丢弃它是正确的解决方案(它摆脱了警告)?

0 投票
1 回答
347 浏览

c - 夹板有趣的错误信息

我正在运行splint一段 C 代码,它给了我以下语句:

我知道夹板free在分配内存之前希望我使用它,calloc但由于这是在应用程序的初始化过程中,我应该担心它吗?

编辑:这就是 vm->jumptable 的初始化方式

0 投票
1 回答
1099 浏览

c - linux下如何用mingw使用夹板

我运行安装了夹板和mingw的debian linux实际稳定。我想通过夹板检查我的 c 代码(我需要用 mingw 编译,对不起)。仅仅添加 mingw-includes 是不够的。我尝试定义GNU和 i686——但我确信还需要更多。我还需要定义或包括什么?

我尝试了贷款的想法,导致__builtin_va_list.

有趣的是,即使在包含文件夹上使用递归 grep,我也找不到任何定义。我搜索错了吗?
通过定义它的方式-D__builtin_va_list=va_list(从benjarobin)我遇到了错误

即使通过 +trytorecover 也无法恢复。

winnt.h (和邻居)的行读取

奇怪,不是吗?

好的,因为这个线程没有进一步的答案,我将通过这个最小的不工作示例给出一些动力:
给定一个文件test.c

和我的.splintrc

简单的命令splint test.c失败:

再次我不知道,如何设置。包含上述结果来自编译器的预处理调用,该编译器i686-w64-mingw32-gcc运行良好test.c

0 投票
1 回答
1193 浏览

c - 如何从参数返回内存指针以应用于夹板

我遇到了使用夹板的问题。这是类似的代码

夹板给出这样的警告信息,

对于函数 getMem 中的参数,我需要在使用前检查 NULL 指针。然后返回内存地址。注解“/ @out@ /”不能放在第一个参数之前,因为它在函数中使用。而“/ @null@ /”只表示out可以为null,不能为*out。我不知道如何处理它。有人可以给一些建议吗?提前致谢。

0 投票
0 回答
127 浏览

c - C 静态分析器:设置为自动包含 IDE/编译器知道的所有文件

我是否必须手动告诉静态分析器要在分析中包含哪些文件?

我正在使用基于 NetBeans 的 IDE (MPLAB X) 用 C 语言对嵌入式系统进行编程(使用 XC8 编译器)。构建项目非常容易,当我通过 GUI 将 .c 或 .h 文件添加到项目中时,它会自动将它们添加到已编译的文件集中。

自动添加要传递给工具的文件的常见做法是什么?(例如静态分析器,(我可能会使用夹板,或者可能使用frama-c)。

换句话说,我希望能够通过点击快捷键来运行静态分析器,它会自动包含所有必要的 .c 和 .h 文件,分析它们并返回结果。

另一种说法:我不想每次添加 .c 或 .h 文件或更改它们的名称等时手动操作发送到静态分析器 CLI 可执行文件的参数。

这应该怎么做?对于构建过程的补充工具,例如静态分析器,这通常是如何完成的?

谢谢