Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用夹板来检测我的代码中的一些错误。更关键的一点是缓冲区溢出检测,似乎夹板无法做到这一点。我试过一个简单的 C 代码
void test() { int i; int a[10] for(i=0;i<12;i++) a[i]=i; }
此代码生成核心转储,但 Splint 日志为空 我使用默认标志运行 splint 关于检测此问题的任何建议?谢谢
+bounds 选项解决了我的问题:可能的越界存储:a[i] 无法解决约束:需要 i @test.c:6:11 <= 9 需要满足前提条件:需要 maxSet(a @test.c :6:9) >= i @ test.c:6:11 内存写入可能会写入超出分配缓冲区的地址。(使用 -boundswrite 禁止警告)
附加信息: 夹板 +bounds 运行检查我发现该标志正在检查夹板中的所有可用标志,并在特定帮助中获得更多详细信息:
夹板 --help 标志 alpha 夹板 --help 边界