Sun Studio 12:Fortran 编程指南

8.3.1 增强的 tcov 分析

要使用 tcov,请使用 -xprofile=tcov 进行编译。运行程序时,覆盖范围数据存储在 program.profile/tcovd 中,其中 program 是可执行文件的名称。(如果可执行文件是 a.out,则会创建 a.out.profile/tcovd。)

可运行 tcov -x dirname source_files 创建与每个源文件合并在一起的覆盖范围分析。相应的报告写入当前目录中的 file.tcov

运行一个简单示例:


demo% f95 -o onetwo -xprofile=tcov one.f two.f
demo% onetwo
       ... output from program
demo% tcov -x onetwo.profile one.f two.f
demo% cat one.f.tcov two.f.tcov
                       program one
      1 ->             do i=1,10
     10 ->                   call two(i)
                       end do
      1 ->             end
       .....etc
demo%

环境变量 $SUN_PROFDATA$SUN_PROFDATA_DIR 可以用于指定中间数据收集文件的保存位置。这些文件是由旧式和新式 tcov 分别创建的 *.dtcovd 文件。

这些环境变量可以用来分离来自不同次运行的收集数据。设置了这些变量后,运行程序便会将执行数据写入 $SUN_PROFDATA_DIR/$SUN_PROFDATA/ 中的文件。

同样,tcov 读取的目录也通过 tcov -x $SUN_PROFDATA 指定。如果设置了 $SUN_PROFDATA_DIRtcov 会对其进行预置,从而在 $SUN_PROFDATA_DIR/$SUN_PROFDATA/ 中查找文件,而不是在工作目录中查找。

随后的每次运行都会将更多的覆盖范围数据累加到 tcovd 文件中。当程序在相应源文件重新编译后首次执行时,会将每个目标文件的数据全部清零。删除 tcovd 文件会将整个程序的数据全部清零。

有关详细信息,参见 tcov(1) 手册页。