JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.2 Discover 和 Uncover 用户指南
search filter icon
search icon

文档信息

前言

1.  简介

2.  Sun 内存错误搜索工具 (Discover)

Discover 的使用要求

必须正确准备二进制文件

不能使用使用预装或审计的二进制文件

快速入门

校验准备好的二进制文件

缓存共享库

校验共享库

忽略库

命令行选项

输出选项

校验选项

缓存选项

其他选项

bit.rc 初始化文件

SUNW_DISCOVER_OPTIONS 环境变量

运行校验过的二进制文件

分析 Discover 报告

分析 HTML 报告

使用 "Errors"(错误)选项卡

使用 "Warnings"(警告)选项卡

使用 "Memory Leaks"(内存泄漏)选项卡

使用控制面板

分析 ASCII 报告

内存访问错误和警告

内存访问错误

ABR

ABW

BFM

BRP

DFM

FMR

FMW

FRP

IMR

IMW

PIR

UAR

UAW

UMR

内存访问警告

AZS

解释 Discover 错误消息

部分初始化内存

可疑装入

未校验的代码

使用 Discover 时的限制

仅校验有注释的代码

计算机指令可能不同于源代码

编译器选项影响生成的代码

系统库可能会影响报告的错误

自定义内存管理可能会影响数据的准确性

无法检测到静态和自动数组的超出边界错误

3.  代码覆盖率工具 (Uncover)

索引

Discover 的使用要求

必须正确准备二进制文件

Discover 使用通过 Sun Studio 12、Sun Studio 12 Update 1、Oracle Solaris Studio 12.2 编译器编译的二进制文件,或通过 GCC for Sun Systems 4.2.0 版或更高版本编译的二进制文件(在基于 SPARC 或 x86 的系统上,且运行的是 Solaris 10 5/08 操作系统或更高的 Solaris 10 Update 版本)。

当使用 Sun Studio 或 Oracle Solaris Studio 编译器时,您必须使用 -O 选项或 -xO[n] 选项以优化值进行编译。使用 GCC 编译器时,不需要特定的优化级别。

如果未满足这些要求,Discover 会出错,并且不校验二进制文件。但是,您可以使用 -l 选项(请参见校验选项)来校验未满足这些要求的二进制文件,并运行该二进制文件来检测有限数量的错误。

按照说明进行编译的二进制文件包括一些称为注释的信息,用于帮助 Discover 正确地校验二进制文件。添加这些少量信息不会影响二进制文件的性能或运行时内存使用情况。

通过在编译二进制文件时使用 -g 选项生成调试信息,Discover 可以在报告错误和警告的同时显示源代码和行号信息,并可以生成更准确的结果。如果在编译二进制文件时未使用 -g 选项,Discover 将仅显示相应计算机级别指令的程序计数器。另外,使用 -g 选项进行编译可帮助 Discover 生成更准确的报告(请参见解释 Discover 错误消息)。

不能使用使用预装或审计的二进制文件

由于 Discover 使用运行时链接程序的某些特殊功能,因此您不能将其用于使用预装或审计的二进制文件。

如果程序需要设置 LD_PRELOAD 环境变量,则可能无法与 Discover 正确配合,因为 Discover 需要插入某些系统函数,如果函数已预先装入,则无法执行此操作。

同理,如果程序使用了运行时审计(二进制文件链接到 -p 选项或 -P 选项,或者需要设置 LD_AUDIT 环境变量),则此审计将与 Discover 使用的审计相冲突。如果二进制文件链接到审计,Discover 将在校验时失败。如果在运行时设置了 LD_AUDIT 环境变量,结果将无法确定。