static-analysis相关内容

我如何强制执行空检查?

我工作的一个大项目中,即使有自动化测试和100%code覆盖1000个10秒,我们得到错误的荒谬的数字。错误的约95%,我们得到的是NullReferenceException异常。 有没有办法强制执行空检查在编译时? 除了上述,有没有什么办法,自动将强制执行单元测试空检查,而无需编写空的情况下测试自己? 解决方案 您应该看看 code合同的。静态检查仅适用于高端VS版本,但基本上你以 ..
发布时间:2016-08-29 14:03:10 C#/.NET

什么静态分析工具可用于C#?

有什么工具可以有反对C#code静态分析?我知道的FxCop和StyleCop的。是否有其他人呢?我穿过NStatic运行之前,但它一直在发展中求什么似​​乎永远 - 它从什么小我见过的它寻找pretty光滑,因此,如果将永远看到光明的一天这将是很好。 除了这些同样的思路(这主要是我的静态分析利息),用于测试code多线程问题(死锁,比赛条件等)工具还显得有些稀少。 Typemock赛车刚刚弹出 ..
发布时间:2016-08-26 14:27:38 C#/.NET

与(签字)枚举值按位运算

我使用的枚举值标记: 的typedef枚举 { A = 0×00, B = 0x01u,//在U没有影响,如预期 C = 0x02u,//在U没有影响,如预期 ... } enum_name;挥发性无符号字符*章= SomeAddress; *注册| = B; 据MISRA-C:2004位操作,不得使用有符号类型来完成。不幸的是,我的编译器IAR使用的签署的INT(或 ..
发布时间:2016-08-23 11:19:49 C/C++

插装LLVM使用C / C ++ code

我想写一个LLVM传递到每一个仪器内存访问。 这里就是我要做的。 由于任何C / C ++程序(如下面给出的),我试图调用插入一些功能,之前和之后的每读取/指令从内存中写入/。例如,考虑下面的C ++程序(Account.cpp) 的#include<&stdio.h中GT;类账户{ INT平衡;上市: 帐户(INT B) { 平衡= B; } 〜帐户(){}INT阅读() { ..
发布时间:2016-08-21 22:33:34 C/C++开发

工具源$ C ​​$ C分析?

C和C ++ 来源$ C ​​$ C的分析和探索工具似乎非常缺乏。 有没有我可以用它来收集有关C和/或C ++源文件信息的工具吗? cscope的做什么,我需要的部分,看上去的Doxygen接近。 目前所有功能的最小列表,主叫,被叫,变量引用等。 也许使用Doxygen的XML输出​​会工作。 在理想情况下GCC或LLVM可以迷上了这个目的,但是我还没有找到一个便捷的方式这样做。 有什 ..
发布时间:2016-08-21 21:50:07 C/C++开发

类型安全的可变参数用C用gcc

很多时候,我想一个函数来接受可变数量的参数,以NULL结尾,例如 的#define推(stack_t栈,...)_push(__ VARARG__,NULL); FUNC _push(stack_t栈,字符* S,...){ va_list的ARGS; 的va_start(参数,S); 而(S =在va_arg(参数,字符*))push_single(堆栈,S); } ..
发布时间:2016-08-21 20:49:28 C/C++

有害的C源文件检查?

有没有办法为编程检查,如果一个 C源文件是潜在有害的? 我知道,没有检查将产生100%的准确率 - 但我感兴趣的至少的做一些基本的检查,将提出一个红色的标志,如果一些前pressions /关键字找到。什么任何想法去寻找? 注意:我会检查文件的大小(最多行数100S)相对较小,实现数值分析的功能,所有操作的内存。无需外部库(math.h中除外)应在code使用。此外,没有I / O,应使用(函 ..
发布时间:2016-08-18 14:38:10 C/C++

头文件包含静态分析工具?

近日透露,我认为我们的一个单一来源文件包括在编译时超过3400头一个同事。我们有获得在构建编过1000翻译单元,产生了巨大的性能损失超过了肯定不是所有的头文件。 是否有任何静态分析工具,将能够以这样的森林树木阐明,特别是给我们来决定哪些我们应该削出来的工作能力? 更新 上找到,包括一个头文件的费用一些有趣的信息在这里(和类型,包括警卫,以优化其列入) ,从始发 ..
发布时间:2016-08-17 23:07:39 C/C++开发

堆栈大小估计

在多线程嵌入式软件(用C或C ++),线程必须以允许它完成它的操作不会溢出给予足够的堆栈空间。堆栈的正确尺寸,在一些实时嵌入式环境至关重要,因为(至少在一些系统中我使用过),操作系统将不会检测这个给你。 通常,对于一个新的线程的堆栈大小(比主线程其他)在该线程被创建时指定(即,在一个参数给pthread_create()等)。通常,这些堆栈大小是硬coded到已知要善于在code最初是书面或测试 ..
发布时间:2016-08-17 23:05:51 C/C++开发

应返回类型没用类型限定符被使用,为了清楚?

我们的静态分析工具,抱怨了“关于返回类型无用的类型限定词”当我们在头文件中的原型,如: const int的富(); 我们将它定义这种方式,因为该函数返回永远不变的常数,以为API似乎与到位常量清晰。 我喜欢这种感觉类似于明确初始化的全局变量至零为清楚起见,即使C标准已经规定,如果没有明确的初始化所有全局将被初始化为零。在一天结束的时候,它其实并不重要。 (不过,静态分析工具不会抱怨的。) ..
发布时间:2016-08-17 22:25:29 C/C++

如何提高如果返回值被忽略警告 - 海湾合作委员会或静态code检?

我想看到我的code(C ++)函数的漠视返回值的所有地方。我该怎么办呢 - 用gcc或静态code分析工具? 坏code例如: INT F(INT Z){ 返回Z +(Z * 2)+ Z / 3 + Z * Z + 23; } 诠释的main() { INT I = 7; F(ⅰ); /////<< -----这里我忽略的返回值 返回1; } 更新: ..
发布时间:2016-08-17 21:57:19 C/C++开发

死code检测传统的C / C ++项目

您会如何去用C / C ++ code死code检测?我有一个pretty大code的基础工作,并和至少10%-15%是死code。是否有任何基于Unix工具来识别这个领域? code的一些作品仍然使用大量的preprocessor,可自动流程处理这个问题? 解决方案 您可以用code覆盖分析工具,这一点,看看在你的code未使用的斑点。 在gcc工具一个流行的工具是gcov的,再加上图 ..
发布时间:2016-07-27 21:03:03 C/C++开发

更换阵列与正确的整型变量的访问

我已经用INT访问阵列(尤其是在for循环)的习惯;不过,我最近发现,我可能已经“做它所有-错”,我的x86系统上不停地从我隐瞒真相。事实证明,int是罚款时,的sizeof(为size_t)==的sizeof(INT)而是一个系统上使用时,其中的sizeof(为size_t)>的sizeof(INT),它会导致额外的 MOV 指令。为size_t和ptrdiff_t的似乎是在我测试过系统的 ..
发布时间:2016-05-31 19:53:42 其他开发