当我对以下代码运行静态分析时:
public ExtractDBScripts(String resBundleName)
{
super();
m_mainBundle = ResourceBundle.getBundle(resBundleName);
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
"JAVA 0058构造函数'ExtractDBScripts'调用super()".
super()
从构造函数调用有什么问题?
我一直在用我最近编写的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,所以使用聪明的搜索算法没有意义.)
我正在尝试使用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)
谢谢
我一直试图让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 …
我正在搜索任何可以检测执行数据访问和文件操作的类的任何丢失的dispose调用的工具.如果它检查另一个性能问题,那将是很好的.
顺便说一下,我需要在代码上运行工具,而不是执行.谢谢!
在设计零安全代码时,更好的方法是什么?
F#和Scala具有封装null检查的Options类型,但我们也有代码契约,findbugs等静态代码分析工具.
对我来说,静态分析看起来有点清晰,那么Option/Maybe的原因是什么?特别是,什么使它更好地防止NullPointerExceptions/NullReferenceExceptions?
我无法证明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) 如何让gcc编译器报告从整数到无符号整数的转换?是否有一个选项/ arg我可以传递给gcc编译器来标记这样的转换?
有没有办法在Java中找到所有硬编码的数字和字符串?我的意思是没有放入专用变量的值.
例如 :
while (i < 6) {
System.out.println("6 is a number"); // Hard Coded, "Magic" String
}
Run Code Online (Sandbox Code Playgroud)
我得到了SonarQube的建议,但我不知道如何使用它.