要校验程序的二进制代码而非源代码,需要使用 Oracle Solaris Studio 中包含的 discover 工具。discover(1) 手册页和《Oracle Solaris Studio 12.2 Discover 和 Uncover 用户指南》中对该工具进行了说明。
有关二进制代码校验要求的更多信息,请参见二进制代码级别校验。
对于本教程中的示例,请键入以下命令以使用优化级别 3 进行代码编译,进而创建可由 discover 使用的二进制代码。
% cc -xopenmp=noopt -g -o prime_omp_opt prime_omp.c -lm |
% cc -g -O3 -o prime_pthr_opt prime_pthr.c -lm |
然后,对所创建的 prime_omp_opt 和 prime_pthr_opt 优化二进制代码运行 discover:
% discover -i datarace -o prime_omp_disc prime_omp_opt |
% discover -i datarace -o prime_pthr_disc prime_pthr_opt |
这些命令将创建校验后的二进制代码 prime_omp_disc 和 prime_pthr_disc,可以将这些二进制代码与 collect 一起使用,以创建可使用线程分析器进行检查的实验。