static-analysis相关内容
有没有针对 Delphi/Pascal 的静态代码分析工具? 我看到了很多 C++ 和 .NET 的选择,但 Delphi/Pascal 没有. 理想的情况是可以集成到持续集成系统中. 解决方案 Pascal Analyzer 很好.>
..
可能的重复: cocoa Objective-c 类中变量前面的下划线是如何工作的? 我对实例变量和属性命名使用相同的约定,如 sebnow 在他的以下回答中所示: Objective C 中的实例变量/方法参数命名 我在这里复制粘贴他的示例代码: @interface Foo : NSObject {id_bar;}@property (nonatomic, 保留) id
..
给定一个 C++ 源代码,我想找到每个函数写入和读取的类字段.使用 Clang 前端执行此操作的最佳方法是什么? (我不是要求对所有步骤进行详细解释;但是,如果能找到一个有效解决方案的起点会很棒.) 到目前为止,我尝试使用 RecursiveASTVisitor 解析语句,但是很难跟踪节点连接.另外,我不知道如何跟踪如下内容: int&x = m_int_field;x++; 这显
..
比方说,我有一堆函数a、b、c、d 和e 我想知道他们是否直接使用循环: def a():对于范围内的 i (3):打印(我** 2)定义 b():我 = 0当我
..
我正在为 C 制作一个静态分析器.我已经使用 ANTLR 完成了词法分析器和解析器,其中生成了 Java 代码. ANTLR 是否通过 options {output=AST;} 自动为我们构建 AST?还是我必须自己做树?如果是,那么如何吐出该 AST 上的节点? 我目前认为该 AST 上的节点将用于制作 SSA,然后进行数据流分析以制作静态分析器.我在正确的道路上吗? 解决方
..
我有以下形式的代码: class 测试 {私人最终 A t;公共测试(){为了 ( ... : ... ) {最终 A u = 空;}t = 新 A();}私有类 A {}} 编译器说: 变量 t 可能已经被赋值 有趣的是,如果我对循环执行以下任何更改,它就会起作用! 将循环的内容更改为A u = null 移除循环(但保持final A u = null;) 用经典的计数循环替
..
在使用侦听器迭代令牌时,我想知道如何使用 ParserRuleContext 来查看令牌流中的下一个令牌或接下来的几个令牌? 在下面的代码中,我试图查看当前令牌之后直到 EOF 的所有令牌: @Override公共无效输入分号(JavaParser.SemicolonContext ctx){令牌tok,semiColon = ctx.getStart();int currentIndex
..
在使用侦听器迭代令牌时,我想知道如何使用 ParserRuleContext 来查看令牌流中的下一个令牌或接下来的几个令牌? 在下面的代码中,我试图查看当前令牌之后直到 EOF 的所有令牌: @Override公共无效输入分号(JavaParser.SemicolonContext ctx){令牌tok,semiColon = ctx.getStart();int currentIndex
..
我正在为 C 制作一个静态分析器.我已经使用 ANTLR 完成了词法分析器和解析器,其中生成了 Java 代码. ANTLR 是否通过 options {output=AST;} 自动为我们构建 AST?还是我必须自己做树?如果是,那么如何吐出该 AST 上的节点? 我目前认为该 AST 上的节点将用于制作 SSA,然后进行数据流分析以制作静态分析器.我在正确的道路上吗? 解决方
..
在 FindBugs 发行版中,annotations.jar 不是 jsr305.jar 的子集.但是,几个注释似乎是重复的(完全或非常接近).如果可以选择,我是否应该更喜欢 jsr305.jar 中的注释? 请注意,我不只是想知道使用来自 jsr305.jar 的注释会“更好",因为它们代表一个标准.相反,如果我更喜欢特定注释的 jsr305.jar 版本,我想知道 FindBugs 工
..
两者有什么区别?两者似乎都意味着该值可能为空,应该相应地进行处理,即检查是否为空. 更新:上面的两个注释是 JSR-305/FindBugs 的一部分:http://findbugs.sourceforge.net/manual/annotations.html 解决方案 我认为从您添加的链接中可以很清楚地看出:如果您使用 @CheckForNull 并且使用该值的代码没有检查 nu
..
到目前为止,我们一直在使用 Findbugs JSR-305 注释 (com.google.code.findbugs:jsr305),包括工具支持(Sonar、Eclipse、Findbugs 等)在内的一切都运行良好. 然而,我们的理解是 Java 9 中的 Jigsaw 将破坏 JSR-305 注释(不允许在两个模块中使用一个包).这在 JavaOne 2015 上得到了证实.Orac
..
我正在尝试探索 VS 2013 中的静态代码分析选项.我在下面写了非常简单的代码 int main(){国际a, b;//找到未使用的变量std::cout >一种;int* i = 新整数;//分析没有发现这个内存泄漏//删除我;//i = NULL;} 当我在上面的块上运行代码分析时,我希望它找到 int* i = new int; 并警告内存泄漏
..
静态分析(例如编译器)可以检测到哪些类型的错误而符号执行不能检测到哪些错误?以及符号执行可以检测到静态分析无法检测到的错误类型是什么?例如符号执行可以检测语法错误吗? 解决方案 简而言之,静态分析能够发现编码问题,例如不良做法.例如,如果您(不必要地)将类字段声明为公共字段,静态分析工具可能会警告您应该将此类字段声明为私有字段.然而,“最干净"的代码不一定没有错误.尽管在某些代码中没有发现
..
我有这样声明的保留属性: @property (nonatomic, retain) NSMutableDictionary *codes; 然后我合成这个: @synthesize 代码; 我使用这样的属性: self.codes = [NSMutableDictionary 字典]; 然后,我忘记在我的dealloc 中说[codes release];. 当我在 XCode
..
一段时间以来,我一直在努力使用 Soot 创建控制流图,而我有点迷失在它的教程中.我一直在尝试将 Soot 用作库或 API,而不是将 Soot 用作 Eclipse 插件. 我想做的是,我有一堆 Java 项目,我想创建/生成这些项目的控制流图.我还看到 Soot 中有一个功能,我可以生成“DOT"格式的控制流图,这对我来说也是可以接受的. 任何展示如何使用 Soot 创建/生成控制
..
我写了一个 C 函数来检查两个给定的字符串(C 风格)是否是字谜.我尝试用 Frama-C 验证它,但它无法验证函数的最终行为(其他规范有效).第一个进入超时(即使 WP 中的超时值非常高),第二个是未知的. 代码如下: #include //@幽灵字符字母表[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l
..
我得到了这个 C 代码(代码的细节,包括可能的错误,不是很相关): int read_leb128(char **ptr, char *end) {整数 r = 0;整数 s = 0;字符 b;做 {if ((intptr_t)*ptr >= (intptr_t)end) (exit(1));b = *(*ptr)++;r += (b & (char)0x7f)
..
假设我有下面的原始方法. public String someMethod(String str) {字符串 returnStr;if("BLAH".equals(str)) {returnStr="ok";} else if ("BLING".equals(str)) {returnStr="不行";} else if ("BONG".equals(str)) {returnStr="ok";
..
我一直在开发一个静态程序分析器(一种试图在编译时检测程序错误的工具),它几乎完成了.我想在网上发布一个演示版本,以便可能对该工具感兴趣的少数人可以测试其功能. 上下文:1. 如有需要,我有一台个人电脑用作服务器.否则,我不确定在技术上是否可以将演示放到我研究所的计算机上,因为他们的计算机没有用于启动演示所需的库. 我正在使用 Eclipse 和 Maven 来开发这个分析器.分析器是用
..