Oracle® Developer Studio 12.5:Discover 和 Uncover 用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

内存错误搜索工具 (discover)

内存错误搜索工具 (discover) 软件是用于检测内存访问错误的高级开发工具。discover 实用程序适用于使用 Sun Studio 12 Update 1、Oracle Solaris Studio 12.2-12.4 或 Oracle Developer Studio 12.5 编译器编译的二进制文件。它可以在基于 SPARC 或 x86 的系统上运行,但要求其操作系统至少为 Solaris 10 10/11、Oracle Solaris 11.3、Oracle Enterprise Linux 6.x 或 Oracle Enterprise Linux 7.x。

程序中与内存相关的错误极难发现。通过 discover 实用程序,您可以通过定位源代码中出现问题的确切位置来轻松地找到此类错误。例如,如果您的程序分配了一个数组,但未将其初始化,然后尝试从一个数组位置执行读取操作,则该程序可能会出现异常行为。当您以正常方式运行程序时,discover 实用程序可以捕捉到此问题。

    discover 可以检测到的其他错误包括:

  • 对未分配的内存执行读写

  • 访问超出分配数组边界的内存

  • 不正确地使用释放的内存

  • 释放错误的内存块

  • 多次释放同一内存块

  • 内存泄漏

  • 内存副本重叠

  • 过时的指针访问

  • 系统库函数的参数不正确

由于 discover 是在程序执行期间动态捕捉并报告内存访问错误,因此,如果运行时用户代码的某个部分未执行,则不会报告该部分的错误。

discover 实用程序的用法很简单。任何二进制文件(甚至是完全优化的二进制文件)均可使用单个命令进行检测,然后以正常方式运行。有关如何以最佳方式检测二进制文件的信息,请参见支持的二进制文件。运行期间,discover 会生成内存异常报告,您可以在 Web 浏览器中以文本文件或 HTML 格式查看该报告。