Oracle® Developer Studio 12.5:代码分析器用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

代码分析器分析的数据

代码分析器可以分析以下三种类型的数据:

  • 编译期间检测到的静态代码错误

  • 由内存错误搜索工具 discover 实用程序检测到的动态内存访问错误和警告

  • 由代码覆盖工具 uncover 实用程序度量的代码覆盖数据

除了提供对各种类型的分析的访问以外,代码分析器还将静态代码检查与动态内存访问分析和代码覆盖分析集成,从而可以发现应用程序中其他单独使用的错误检测工具无法发现的许多重要错误。

代码分析器还可精确定位代码中的核心问题,修复这些问题后可能会消除其他问题。 一个核心问题通常会伴有多个其他问题,例如,因为这些问题具有一个通用分配点或出现在同一函数中的同一数据地址上。

静态代码检查

静态代码检查可在编译期间检测代码中出现的常见编程错误。 C 和 C++ 编译器的 –xprevise=yes 选项利用编译器的控制和数据流分析框架来分析应用程序是否存在潜在的编程和安全缺陷。


注 -  可以选择使用 –xanalyze=code 选项来收集静态代码错误,但此选项已停止使用。建议使用 –xprevise=yes 选项。

有关收集静态错误数据的信息,请参见收集静态错误数据

有关代码分析器分析的静态代码错误的列表,请参见静态代码问题

动态内存访问检查

通常,难以找到代码中与内存相关的错误。在运行程序之前使用 discover 对程序进行检测时,discover 会在程序执行期间动态捕捉并报告内存访问错误。 例如,如果您的程序分配了一个数组但未将其初始化,然后尝试从数组中的某个位置执行读取操作,则该程序可能会出现异常行为。如果使用 Discover 对程序进行检测,然后运行此程序,discover 将捕捉该错误。

有关收集动态内存访问错误数据的信息,请参见收集动态内存访问数据

有关代码分析器分析的动态内存访问问题的列表,请参见动态内存访问错误

代码覆盖检查

代码覆盖可提供有关在测试中执行的和未执行的代码区域的信息,从而可以使您改进测试套件以测试更多代码。 代码分析器可使用由 uncover 收集的数据来确定程序中哪些函数未覆盖,以及在添加覆盖相关函数的测试后要添加到应用程序总覆盖中的覆盖百分比。

有关收集代码覆盖数据的信息,请参见收集代码覆盖数据