记得几年前在程序员间曾经非常流行一本叫作高质量C/C++的编程指南的小册子,那个时候能写出高质量的程序是一件有挑战的事情,有各种各样的注意事项需要遵循。即使是现在,也一直是我们编程中的一个薄弱环节。这使得大部分企业只能依靠大量地测试和改错来提高软件产品的质量,为此付出了高昂的代价。随着互联网的广泛应用,代码的安全性将接受更大的挑战,也显得越来越重要。
可幸的是,Intel去年推出的并行开发套件(Parallel Studio) XE版中提供了静态安全检查这一新功能,取名为SSA——Static Security Analysis。
与其他类似产品相比,SSA被设计成更适合于开发人员使用的代码检查工具。在Windows上,它整合在Visual Studio开发环境中。只需简单的两步操作就能实现代码检查,结果生成和查看报告的功能。下面是一个简单的例子:
1. 选中一个intel C++ Composer project 中,从右键菜单中选择”Build aligh64 for Intel Static Security Analysis”
2.在弹出的对话框中选择”All Error and Warnings”, 然后点击”Create Configuration and Build for SSA”
接下来Visual Studio整合环境将为你的项目创建一个名为intel_SSA的配置,并通过该配置编译生成静态安全检查的结果。
编译完成之后,你会看到生成的结果自动以报告的形式通过Inspector XE(Intel(R) Parallel Studio的另一组件)打开:
这样,简单的两步操作就可以很轻松的看到你所需要的静态检查结果了。
在Linux上,Inspector XE也提供了独立的应用程序,你只要在编译和链接时添加选项“-diag-enable sc3”, 通过Inspector XE 打开生成的结果目录,就可以与Windows上相似的方式浏览和查看静态检查结果了。
目前SSA可以检查(不仅限于)下列类型的错误:
• Buffer overflows and boundary violations 缓冲区溢出或越界
• Use of uninitialized variables and objects 使用未初始化的变量
• Memory leaks 内存泄露
• Incorrect usage of pointers and dynamically allocated memory不正确的使用指针和动态分配的内存
• Dangerous use of unchecked input 不安全的使用未经检验的输入信息
• Arithmetic overflow and divide by zero 计算溢出和除以零
• Incorrect use of OpenMP* and Cilk directives 不正确的使用OpenMP* 和 Cilk指示符
• Error prone C++ and Fortran language usage C++和Fortran语言使用错误
• Misuse of string, memory, and formatting library routines 误用string, memory和格式化函数库
• Inconsistent object declarations in different program units 在不同的程序单元中不一致的对象声明
• Dead or redundant code 无用或冗余的代码
现在,赶快用你的项目试试SSA吧,看它能帮你发现多少潜在的安全隐患!
在这里下载试用版: http://software.intel.com/en-us/articles/intel-software-evaluation-center/
登陆英特尔软件工具论坛了解更多:http://software.intel.com/zh-cn/forums/185/