《Oracle Solaris Studio 12.2 Discover 和 Uncover 用户指南》提供了下列工具的用法说明:
Sun 内存错误搜索工具 (Discover) 软件是用于检测内存访问错误的高级开发工具。Discover 使用通过 Sun Studio 12、Sun Studio 12 Update 1、Oracle Solaris Express 6/10 或 Oracle Solaris Studio 12.2 编译器编译的二进制文件,或通过 GCC for Sun Systems 4.2.0 版或更高版本编译的二进制文件(在运行 Solaris 10 5/08 操作系统或更高版本的 Solaris 10 Update 的系统上)。
程序中与内存相关的错误极难发现。通过 Discover,您可以定位问题在源代码中的确切位置,从而轻松地找到此类错误。例如,如果您的程序分配了一个数组但未将其初始化,然后尝试从一个数组位置执行读取操作,程序可能会出现异常行为。当您以正常方式运行程序时,Discover 可以捕捉到此问题。
Discover 可以检测到的其他错误包括:
对未分配的内存执行读写
访问超出分配数组边界的内存
不正确地使用释放的内存
释放错误的内存块
内存泄漏
由于 Discover 是在程序执行期间动态捕捉并报告内存访问错误,因此,如果运行时用户代码的某个部分未执行,则不会报告该部分的错误。
Discover 简单易用。编译器所准备的任何二进制文件(即使是完全优化的二进制文件)均可使用单个命令进行校验,然后以正常方式运行。运行期间,Discover 会生成内存异常报告,您可以在 Web 浏览器中以文本文件或 HTML 格式查看报告。
Uncover 是一个简单易用的命令行工具,用于度量应用程序的代码覆盖率。代码覆盖率是软件测试的重要组成部分。该工具提供了测试时执行或未执行的代码区域的相关信息,使您可以改进测试套件以测试更多代码。Uncover 可以在函数、语句、基本块或指令级别报告覆盖率信息。
Uncover 提供了一个称为“未覆盖率”的独特功能,使您可以快速找到未测试的主要功能区域。与其他类型的校验相比,Uncover 代码覆盖率工具的其他优势包括:
相对于未校验的代码而言,性能只有些许的下降。
由于 Uncover 使用二进制文件,因此,它可以处理任何优化的二进制文件。
可以通过校验随附的二进制文件来进行度量。要进行覆盖率测试,无需以不同的方式构建应用程序。
Uncover 提供了一套校验二进制文件、运行测试和显示结果的简单过程。
Uncover 是多线程安全的,并且是多进程安全的。