static-analysis相关内容

Objective-C 2.0 中带有下划线的实例变量并使用 @synthetize 重命名会导致 Xcode 4 的“分析"工具发出优化警告

可能的重复: cocoa Objective-c 类中变量前面的下划线是如何工作的? 我对实例变量和属性命名使用相同的约定,如 sebnow 在他的以下回答中所示: Objective C 中的实例变量/方法参数命名 我在这里复制粘贴他的示例代码: @interface Foo : NSObject {id_bar;}@property (nonatomic, 保留) id ..

如何使用 Clang 查找所有成员字段读/写?

给定一个 C++ 源代码,我想找到每个函数写入和读取的类字段.使用 Clang 前端执行此操作的最佳方法是什么? (我不是要求对所有步骤进行详细解释;但是,如果能找到一个有效解决方案的起点会很棒.) 到目前为止,我尝试使用 RecursiveASTVisitor 解析语句,但是很难跟踪节点连接.另外,我不知道如何跟踪如下内容: int&x = m_int_field;x++; 这显 ..

如何输出使用ANTLR构建的AST?

我正在为 C 制作一个静态分析器.我已经使用 ANTLR 完成了词法分析器和解析器,其中生成了 Java 代码. ANTLR 是否通过 options {output=AST;} 自动为我们构建 AST?还是我必须自己做树?如果是,那么如何吐出该 AST 上的节点? 我目前认为该 AST 上的节点将用于制作 SSA,然后进行数据流分析以制作静态分析器.我在正确的道路上吗? 解决方 ..
发布时间:2021-11-26 17:37:16 其他开发

javac数据流分析的奇怪误报

我有以下形式的代码: class 测试 {私人最终 A t;公共测试(){为了 ( ... : ... ) {最终 A u = 空;}t = 新 A();}私有类 A {}} 编译器说: 变量 t 可能已经被赋值 有趣的是,如果我对循环执行以下任何更改,它就会起作用! 将循环的内容更改为A u = null 移除循环(但保持final A u = null;) 用经典的计数循环替 ..
发布时间:2021-11-22 16:43:30 Java开发

在侦听器中使用 ParserRuleContext 遍历令牌 - ANTLR4

在使用侦听器迭代令牌时,我想知道如何使用 ParserRuleContext 来查看令牌流中的下一个令牌或接下来的几个令牌? 在下面的代码中,我试图查看当前令牌之后直到 EOF 的所有令牌: @Override公共无效输入分号(JavaParser.SemicolonContext ctx){令牌tok,semiColon = ctx.getStart();int currentIndex ..
发布时间:2021-11-11 04:06:34 Java开发

在侦听器中使用 ParserRuleContext 遍历令牌 - ANTLR4

在使用侦听器迭代令牌时,我想知道如何使用 ParserRuleContext 来查看令牌流中的下一个令牌或接下来的几个令牌? 在下面的代码中,我试图查看当前令牌之后直到 EOF 的所有令牌: @Override公共无效输入分号(JavaParser.SemicolonContext ctx){令牌tok,semiColon = ctx.getStart();int currentIndex ..
发布时间:2021-11-11 03:48:43 Java开发

如何输出使用ANTLR构建的AST?

我正在为 C 制作一个静态分析器.我已经使用 ANTLR 完成了词法分析器和解析器,其中生成了 Java 代码. ANTLR 是否通过 options {output=AST;} 自动为我们构建 AST?还是我必须自己做树?如果是,那么如何吐出该 AST 上的节点? 我目前认为该 AST 上的节点将用于制作 SSA,然后进行数据流分析以制作静态分析器.我在正确的道路上吗? 解决方 ..
发布时间:2021-11-11 03:32:20 其他开发

对于 FindBugs,jar305.jar 中的注释是否应该优于 annotation.jar 中的类似注释?

在 FindBugs 发行版中,annotations.jar 不是 jsr305.jar 的子集.但是,几个注释似乎是重复的(完全或非常接近).如果可以选择,我是否应该更喜欢 jsr305.jar 中的注释? 请注意,我不只是想知道使用来自 jsr305.jar 的注释会“更好",因为它们代表一个标准.相反,如果我更喜欢特定注释的 jsr305.jar 版本,我想知道 FindBugs 工 ..
发布时间:2021-11-10 22:45:00 Java开发

javax.annotation: @Nullable vs @CheckForNull

两者有什么区别?两者似乎都意味着该值可能为空,应该相应地进行处理,即检查是否为空. 更新:上面的两个注释是 JSR-305/FindBugs 的一部分:http://findbugs.sourceforge.net/manual/annotations.html 解决方案 我认为从您添加的链接中可以很清楚地看出:如果您使用 @CheckForNull 并且使用该值的代码没有检查 nu ..
发布时间:2021-11-10 22:36:31 Java开发

Visual Studio 2013 静态代码分析 - 它有多可靠?

我正在尝试探索 VS 2013 中的静态代码分析选项.我在下面写了非常简单的代码 int main(){国际a, b;//找到未使用的变量std::cout >一种;int* i = 新整数;//分析没有发现这个内存泄漏//删除我;//i = NULL;} 当我在上面的块上运行代码分析时,我希望它找到 int* i = new int; 并警告内存泄漏 ..

静态分析和符号执行中的错误检测

静态分析(例如编译器)可以检测到哪些类型的错误而符号执行不能检测到哪些错误?以及符号执行可以检测到静态分析无法检测到的错误类型是什么?例如符号执行可以检测语法错误吗? 解决方案 简而言之,静态分析能够发现编码问题,例如不良做法.例如,如果您(不必要地)将类字段声明为公共字段,静态分析工具可能会警告您应该将此类字段声明为私有字段.然而,“最干净"的代码不一定没有错误.尽管在某些代码中没有发现 ..

如何使用 Soot 创建控制流图?

一段时间以来,我一直在努力使用 Soot 创建控制流图,而我有点迷失在它的教程中.我一直在尝试将 Soot 用作库或 API,而不是将 Soot 用作 Eclipse 插件. 我想做的是,我有一堆 Java 项目,我想创建/生成这些项目的控制流图.我还看到 Soot 中有一个功能,我可以生成“DOT"格式的控制流图,这对我来说也是可以接受的. 任何展示如何使用 Soot 创建/生成控制 ..
发布时间:2021-08-30 18:31:24 Java开发

Frama-C anagram 函数行为验证

我写了一个 C 函数来检查两个给定的字符串(C 风格)是否是字谜.我尝试用 Frama-C 验证它,但它无法验证函数的最终行为(其他规范有效).第一个进入超时(即使 WP 中的超时值非常高),第二个是未知的. 代码如下: #include //@幽灵字符字母表[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l ..
发布时间:2021-08-30 18:31:21 其他开发

将我的静态程序分析器的演示创建为 Web 应用程序?[不向客户端发送 .jar 文件]

我一直在开发一个静态程序分析器(一种试图在编译时检测程序错误的工具),它几乎完成了.我想在网上发布一个演示版本,以便可能对该工具感兴趣的少数人可以测试其功能. 上下文:1. 如有需要,我有一台个人电脑用作服务器.否则,我不确定在技术上是否可以将演示放到我研究所的计算机上,因为他们的计算机没有用于启动演示所需的库. 我正在使用 Eclipse 和 Maven 来开发这个分析器.分析器是用 ..
发布时间:2021-08-30 18:31:11 Java开发