uncover 实用程序适用于至少使用 Sun Studio 12 Update 1、Oracle Solaris Studio 12.2-12.4 或 Oracle Developer Studio 12.5 编译器编译的二进制文件。它可以在基于 SPARC 或 x86 的系统上运行,但要求其操作系统至少为 Solaris 10 10/08、Oracle Solaris 11、Oracle Enterprise Linux 5.x 或 Oracle Enterprise Linux 6.x。
按照说明进行编译的二进制文件包含一些信息,uncover 可使用这些信息可靠地反汇编该二进制文件,以便对其进行检测以收集覆盖数据。
要使 Uncover 能够使用源代码级别的覆盖信息,请在编译二进制文件时使用 –g 选项生成调试信息。如果二进制文件不是使用 –g 选项编译的,Uncover 只能使用基于程序计数器 (program counter, PC) 的覆盖信息。
uncover 实用程序可与使用 Oracle Developer Studio 编译器生成的任何二进制文件结合使用,但与生成时不使用任何优化选项的二进制文件结合使用效果最好。以前的 uncover 发行版至少需要 –O1 优化级别。如果生成二进制文件时使用了优化选项,则 uncover 结果在使用较低优化级别(–O1 或 –O2)时较好。uncover 使用通过 –g 选项生成二进制文件时生成的调试信息将指令与行号相关联,由此派生源代码行级覆盖。优化级别为 –O3 和更高级别时,编译器可能会删除可能从不不执行的或冗余的某一代码,这可能导致没有任何二进制文件指令用于某些源代码行。在此类情况下,不会为这些行报告任何覆盖信息。有关更多信息,请参见使用 uncover 时的限制。