跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris Studio 12.3:Discover 和 Uncover 用户指南 Oracle Solaris Studio 12.3 Information Library (简体中文) |
Discover 使用通过 Sun Studio 12 Update 1、Oracle Solaris Studio 12.2 或 Oracle Solaris Studio 12.3 编译器编译的二进制文件,或通过 GCC for Sun Systems 4.2.0 版(或更高版本)编译器编译的二进制文件。Discover 适用于运行 Solaris 10 10/08 操作系统(或更高的 Solaris 10 Update 版本)或 Oracle Solaris 11 的基于 SPARC 或基于 x86 的系统。
如果未满足这些要求,Discover 会发出错误,并且不检测二进制文件。但是,您可以使用 -l 选项(请参见检测选项)来检测未满足这些要求的二进制文件,并运行该二进制文件来检测有限数量的错误。
按照说明进行编译的二进制文件包括一些称为注释的信息,用于帮助 Discover 正确地检测二进制文件。添加这些少量信息不会影响二进制文件的性能或运行时内存使用情况。
通过在编译二进制文件时使用 -g 选项生成调试信息,Discover 可以在报告错误和警告的同时显示源代码和行号信息,并可以生成更准确的结果。如果在编译二进制文件时未使用 -g 选项,Discover 将仅显示相应计算机级别指令的程序计数器。另外,使用 -g 选项进行编译可帮助 Discover 生成更准确的报告(请参见解释 Discover 错误消息)。
由于 Discover 使用运行时链接程序的某些特殊功能,因此您不能将其用于使用预装或审计的二进制文件。
如果程序需要设置 LD_PRELOAD 环境变量,则可能无法与 Discover 正确配合,因为 Discover 需要插入某些系统函数,如果函数已预先装入,则无法执行此操作。
同样,如果程序使用了运行时审计(二进制文件通过 -p 选项或 -P 选项进行链接,或者需要设置 LD_AUDIT 环境变量),则此审计将与 Discover 使用的审计相冲突。如果二进制文件链接到审计,Discover 将在检测时失败。如果在运行时设置了 LD_AUDIT 环境变量,结果将无法确定。
Discover 支持重新定义以下标准内存分配函数的二进制文件:malloc()、calloc()、memalign()、valloc() 和 free()。