我開始使用Gcov來分析我的C程序。所以我在GCOV文檔的介紹中讀到: 「因爲gcov按行(以最低分辨率)累計統計數據,所以它最適合使用每行僅放置一條語句的編程風格。」 GCov Documentation如何避免GCov對編碼風格的限制?
寫了一些簡單的程序,我注意到在執行包含在「for」子句中的語句的計算次數的問題。
我要告訴你兩個例子,以及這些的gcov輸出,:
-: 0:Source:example1.c
-: 0:Graph:example1.gcno
-: 0:Data:example1.gcda
-: 0:Runs:1
-: 0:Programs:1
-: 1:#include <stdio.h>
-: 2:#include <stdlib.h>
-: 3:
-: 4:
1: 5:int main()
-: 6:{
1: 7: int i = 0;
-: 8:
1: 9: for(; i < 4; i++);
-: 10:
1: 11: return 0;
-: 12:}
-: 13:
gcov的計數的條款作爲一個獨特的元素。這沒有錯?正如文檔的gcov告訴計數的時間,如果我在這個例子中把這些放在一個線,如在條款的語句執行的正確數量:
-: 0:Source:example1.c
-: 0:Graph:example1.gcno
-: 0:Data:example1.gcda
-: 0:Runs:1
-: 0:Programs:1
-: 1:
-: 2:#include <stdio.h>
-: 3:#include <stdlib.h>
-: 4:
-: 5:
1: 6:int main()
-: 7:{
1: 8: int i = 0;
-: 9:
6: 10: for(;
-: 11: i < 4;
4: 12: i++);
-: 13:
1: 14: return 0;
-: 15:}
-: 16:
我們是(i = 0)被執行1時間,(i < 4)5次和(i ++)4次。這對我來說是正確的。
我有兩個問題:
1 - 我不希望我的適應編碼風格,以做gcov的統計數據。是否有許多工具或標誌以正確的格式轉換我的代碼以獲得GCov的正確統計信息?
2-是否還有其他構造具有「for」循環的相同問題?
在此先感謝您的答案。
對不起,延遲迴復。但我還沒有確信。 GCov計算你寫的「for」作爲唯一的陳述。我從分析中收到5個。 – vnzstc