当涉及到确保软件质量、可靠性和安全在当今复杂的代码,传统的调试和测试方法简单的不足。 自动化工具,如静态源代码分析器更有效地发现缺陷,可能导致缓冲区溢出,资源泄漏等安全性和可靠性问题。 这类缺陷往往不被编译器在标准构建,运行时测试,或典型的现场操作。
集成的代码分析器:
而其他源代码分析器作为独立的工具,运行DoubleCheck是一个集成的静态分析器,内置在青山C / c++编译器。 DoubleCheck利用准确和高效的分析算法,调整和战地在30年以上的生产嵌入式开发工具。 DoubleCheck可以作为一个集成的工具进行编译和缺陷分析相同的通过。
典型的编译器警告和错误的一些基本问题潜在的代码问题,如违反语言或使用标准的实现定义的结构。 相比之下,DoubleCheck执行一个完整的程序分析,发现bug造成的复杂的代码之间的相互作用,甚至可能不是在同一源文件。
DoubleCheck决定潜在的通过代码执行路径,包括路径和子程序调用,以及程序对象的值(如独立变量或字段在骨料)可能会改变在这些路径。
DoubleCheck看起来对于许多类型的缺陷,包括 :
潜在的空指针取消引用
访问超出一个分配区域(也称为缓冲区溢出)
潜在的写入只读存储器
读取可能未初始化的对象
资源泄漏(如内存泄漏和泄漏文件描述符)
使用的内存已经被收回
作用域内存的使用(例如,一个自动的返回地址 从子程序变量)
未能设置返回值的子例程
缓冲和数组下溢
分析器了解许多标准运行时库的行为 功能。 例如它知道子程序 免费的 应该 由子程序通过分配的内存的指针 malloc 。 分析器使用这些信息来检测错误的代码中调用 或使用这些函数调用的结果。
自动编码标准
许多软件开发组织使用一个内部编码标准控制编程实践,以确保质量、可维护性和可靠性。 DoubleCheck可以自动执行这些编码标准。
例如,DoubleCheck青山模式,增加了一系列合理的质量控制检查任务,包括几个MISRA合规检查,执行可选的但重要的语言标准,等等。
指标计算和执行其他的编码规则不产生显著的开销DoubleCheck以来已经遍历树发现bug的代码。 DoubleCheck可以配置为生成一个构建错误,突显出问题的代码,从而使开发人员避免意外提交软件,违反了编码规则。 使用DoubleCheck作为一个自动化软件质量控制节省时间和挫折通常与同行评审相关联。