标签: static-analysis

在Java中的构造函数中使用super()有什么问题?

当我对以下代码运行静态分析时:

  public ExtractDBScripts(String resBundleName)
    {
        super();
        m_mainBundle = ResourceBundle.getBundle(resBundleName);
    }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"JAVA 0058构造函数'ExtractDBScripts'调用super()".

super()从构造函数调用有什么问题?

java debugging constructor static-analysis

2
推荐指数
1
解决办法
858
查看次数

删除Splint中的空警告

我一直在用我最近编写的C程序试用Splint,并尝试理解并删除它给出的警告.我理解但无法理解如何删除它来自以下代码片段:

static MyType_t *findById(const int id)
{
    int i;

    for (i = 0; i < MY_ARR_SIZE; i++) {
            if (my_arr[i].id == NOT_SET) {
                    /* Items are sorted so that items with 
                    NOT_SET as ID are at the end of the array */
                    break;
            }
            if (my_arr[i].id == id) {
                    return &(my_arr[i]);
            }
    }
    return NULL; 
}
Run Code Online (Sandbox Code Playgroud)

Splint不满意该函数可以返回NULL,但在这种情况下它很有意义.

我尝试使用/ @ nullwhenfalse @ /但它似乎只有在函数返回true/false时才会起作用,并且还试图将代码更改为使用retVal并且在前面尝试了两个/ @ null @ /和/ @ relnull @ /宣言,但这些都没有做到.

(就像一个侧面说明,该表只有20个大的atm,所以使用聪明的搜索算法没有意义.)

c static-analysis splint syntax-checking

2
推荐指数
1
解决办法
580
查看次数

一个PHP正则表达式从代码文件中提取php函数

我正在尝试使用PHP正则表达式从php源代码中提取函数.到目前为止,我使用递归正则表达式来提取{}之间的所有内容,但它也匹配像if语句之类的东西.当我使用类似的东西:

preg_match_all("/(function .*\(.*\))({([^{}]+|(?R))*})/", $data, $matches);
Run Code Online (Sandbox Code Playgroud)

当文件中有多个函数时,它不起作用(可能是因为它在递归中也使用了'function'部分).

有没有办法做到这一点?

示例文件:

<?php
if($useless)
{
  echo "i don't want this";
}

function bla($wut)
{
  echo "i do want this";
}
?>
Run Code Online (Sandbox Code Playgroud)

谢谢

php regex static-analysis function

2
推荐指数
1
解决办法
3075
查看次数

C++动态审查工具

您用于C++应用程序的动态审查/内存分析的最佳工具(商业/开源)是什么?

编辑:删除'静态',因为关于这个主题已经有一个很好的问题(感谢Iulian!)

c++ static-analysis memory-management visual-c++

2
推荐指数
1
解决办法
393
查看次数

克隆Xcode 4错误:invalide选项nodistribute

我一直试图让clang的分析工具正常工作,但我不知道如何在运行它时克服一个特定的错误.我已经安装了X-Code 4.0和iOS 5,我得到的输出是:


生成类依赖图.

启动/Users//Desktop/HomeWork2/tools/AnalysisTool.app/Contents/Resources/llvm/utils/scan-build with arguments :(

"-o",
"/Users/<homedir>/Development/myApp/Static analysis/results",
"-v",
"--status-bugs",
"-checker-cfref",
"-warn-dead-stores",
"-warn-objc-methodsigs",
"-warn-objc-missing-dealloc",
"-warn-objc-unused-ivars",
"-analysistool-checker-access-control",
"-analysistool-checker-coersions",
"-analysistool-checker-cyclomatic-complexity",
"-analysistool-checker-conditional-logical-complexity",
"-analysistool-checker-conditional-nesting-depth",
"-analysistool-checker-loop-nesting-depth",
"-analysistool-checker-dealloc-safety",
"-analysistool-checker-declaration-conventions",
"-analysistool-checker-discouraged-method-calls",
"-analysistool-checker-error-handling",
"-analysistool-checker-extra-parentheses",
"-analysistool-checker-finalize",
"-analysistool-checker-format-strings",
"-analysistool-checker-kvo",
"-analysistool-checker-memory-management",
"-analysistool-checker-naming-conventions",
"-analysistool-checker-shadow",
"-analysistool-checker-unused-ivars",
"--use-cc=/Developer/usr/bin/llvm-gcc-4.2",
"--use-c++=/Developer/usr/bin/llvm-g++-4.2",
"-generate-class-dependency-graph",
xcodebuild,
"CONFIGURATION_BUILD_DIR=/Users/<homedir>/Development/myApp/Static analysis/build",
"CONFIGURATION_TEMP_DIR=/Users/<homedir>/Development/myApp/Static analysis/build",
"-configuration",
Debug,
clean,
build
Run Code Online (Sandbox Code Playgroud)

).

scan-build:将此运行的报告发送到'/ Users // Development/AMMO_SVN_Projects/MobXpo/branches/MobXpo_v12/Static analysis/results/2011-06-30-8'.

scan-build:在'/Users//Desktop/SWEN_646/HW2/tools/AnalysisTool.app/Contents/Resources/llvm/utils/libexec'中找不到'clang-cc'可执行文件.

scan-build:使用路径中的'clang-cc'.

xcodebuild:错误:无效选项'-nodistribute'

用法:xcodebuild [-project] [[-target] ... | -alltargets] [-configuration] [-arch] ... [-sdk [|]] [=] ... [] ... xcodebuild - workspace -scheme [-configuration] [-arch] ... [-sdk …

static-analysis clang xcode4

2
推荐指数
1
解决办法
1610
查看次数

检测丢失处置的工具

我正在搜索任何可以检测执行数据访问和文件操作的类的任何丢失的dispose调用的工具.如果它检查另一个性能问题,那将是很好的.

顺便说一下,我需要在代码上运行工具,而不是执行.谢谢!

.net c# performance code-analysis static-analysis

2
推荐指数
1
解决办法
765
查看次数

当我们有代码契约/静态分析时,为什么我们需要Option类型?

在设计零安全代码时,更好的方法是什么?

F#和Scala具有封装null检查的Options类型,但我们也有代码契约,findbugs等静态代码分析工具.

对我来说,静态分析看起来有点清晰,那么Option/Maybe的原因是什么?特别是,什么使它更好地防止NullPointerExceptions/NullReferenceExceptions?

null f# static-analysis scala code-contracts

2
推荐指数
3
解决办法
451
查看次数

Frama-C/WP无法使用\ at来证明循环不变

我无法证明2个循环不变量:

    loop invariant \forall integer i; 0 <= i < (\at(n, Pre) - n) ==> ((char*)m2)[i] == \at(((char*)m1)[i], Pre);
    loop invariant \forall integer i; 0 <= i < (\at(n, Pre) - n) ==> ((char*)m1)[i] == \at(((char*)m2)[i], Pre);
Run Code Online (Sandbox Code Playgroud)

我猜测\对于阵列不起作用,正如我所料.

ACSL by Example(第68页,swap_ranges)中有一个类似的函数,它使用了这个函数,但是如上所述,它们无法用WP插件证明这个特定的函数.我在我的机器上试过它,实际上它无法证明相同的不变量.

完整代码

/*
 * memswap()
 *
 * Swaps the contents of two nonoverlapping memory areas.
 * This really could be done faster...
 */

#include "string.h"

/*@
    requires n >= 1;
    requires \valid(((char*)m1)+(0..n-1));
    requires \valid(((char*)m2)+(0..n-1));
    requires \separated(((char*)m1)+(0..n-1), ((char*)m2)+(0..n-1));
    assigns ((char*)m1)[0..n-1]; …
Run Code Online (Sandbox Code Playgroud)

c design-by-contract static-analysis frama-c loop-invariant

2
推荐指数
1
解决办法
810
查看次数

如何使gcc报告int到uint转换

如何让gcc编译器报告从整数到无符号整数的转换?是否有一个选项/ arg我可以传递给gcc编译器来标记这样的转换?

c static-analysis lint

2
推荐指数
1
解决办法
124
查看次数

查找硬编码(魔术)数字和字符串

有没有办法在Java中找到所有硬编码的数字和字符串?我的意思是没有放入专用变量的值.

例如 :

while (i < 6) {
    System.out.println("6 is a number"); // Hard Coded, "Magic" String
}
Run Code Online (Sandbox Code Playgroud)

我得到了SonarQube的建议,但我不知道如何使用它.

java static-analysis magic-numbers sonarqube

2
推荐指数
1
解决办法
784
查看次数