Oracle® Solaris Studio 12.4:代码分析器用户指南

退出打印视图

更新时间: 2014 年 10 月
 
 

收集动态内存访问数据

收集 C 或 C++ 程序的动态内存访问数据的过程包含以下两个步骤:使用 discover 检测二进制文件,然后运行检测过的二进制文件。

要使用 discover 检测程序以收集数据供代码分析器使用,必须已使用 Oracle Solaris Studio 版本 12.3 或 12.4 的 C 或 C++ 编译器对程序进行了编译。 使用 –g 选项进行编译可生成调试信息,从而使代码分析器可以显示动态内存访问错误和警告的源代码与行号信息。

如果在不进行优化的情况下编译程序,discover 将在源代码级别提供最完整的内存错误检测。如果编译时进行优化,将检测不到某些内存错误。

有关 Discover 能够检测或不能检测的特定类型二进制文件的信息,请参见Oracle Solaris Studio 12.4:Discover 和 Uncover 用户指南 中的正确准备二进制文件Oracle Solaris Studio 12.4:Discover 和 Uncover 用户指南 中的使用预装入或审计的二进制文件不兼容


注 -  您可以生成程序一次来同时用于 discoveruncover。但是,由于您不能检测已检测过的二进制文件,如果还打算使用 uncover 收集覆盖数据,请在使用 discover 进行检测之前先保存此二进制文件的副本以避免出现此问题。例如:
% cp a.out a.out.save