生成輸出

要生成覆蓋資訊,應執行編譯的程式。在為測試套件建立程式碼覆蓋時,此執行步驟通常由測試套件執行,以便覆蓋範圍顯示測試執行的程式部分和不執行的程式。

$ a.out

執行該程式將導致在與目標檔案相同的目錄中生成 .gcda 檔案。

隨後,你可以使用程式的原始檔名作為引數呼叫 gcov,以生成具有每行執行頻率的程式碼列表。

$ gcov hello.c
File 'hello.c'
Lines executed:90.00% of 10
Creating 'hello.c.gcov'

結果包含在 .gcov 檔案中。這是一個示例:

         -:    0:Source:hello.c
         -:    0:Graph:hello.gcno
         -:    0:Data:hello.gcda
         -:    0:Runs:1
         -:    0:Programs:1
         -:    1:#include <stdio.h>
         -:    2:
         -:    3:int main (void)
         1:    4:{
         1:    5:  int i;
         -:    6:
         1:    7:  i = 0;
         -:    8:
         -:    9:
         1:   10:  if (i != 0)
     #####:   11:    printf ("Goodbye!\n");
         -:   12:  else
         1:   13:    printf ("Hello\n");
         1:   14:  return 0;
         -:   15:}

在這裡,你可以看到行號和來源以及每行執行的次數。如果一行未執行,則標記為 #####

執行計數是累積的。如果在不刪除 .gcda 檔案的情況下再次執行示例程式,則執行源中每一行的次數的計數將新增到上一次執行的結果中。