2014-05-21 127 views
1

背景
我使用Python的工具gcovr產生覆蓋數據對於一些C項目,無限循環。我能夠毫無問題地獲取覆蓋率數據,但由於找到我的源文件的工具存在問題,我無法查看哪行代碼被覆蓋。gcovr當根目錄指定

在檢查由gcovr生成的XML數據後,我意識到該工具正在查看覆蓋信息的錯誤目錄。在這種情況下,我爲gcovr的文檔指定了源文件的根目錄。

# gcovr ... --object-directory=/some/path -r /some/path 

然而,當我指定的目錄爲我的源文件,gcovr進入一個無限循環。

問題
是什麼原因造成這個無限循環,什麼做我需要做的指定我的源文件駐留在哪個目錄?

如果需要任何額外的信息來解決這個問題,我願意提供我能做的。

+0

。我目前正在考慮放棄並使用sed來直接編輯生成的XML文件中的路徑。但是,該工具指定應該能夠根據需要設置源文件位置的路徑。 –

+0

使用'sed'直接編輯XML文件中的路徑。然而,這個解決方案並沒有解決當我嘗試用'gcovr'指定路徑時出現的無限循環問題。 –

回答

0

此問題已在gcovr解決3.2

2

在gcovr 3.1中有一個記錄的錯誤,它處理「-r」(或「--root =」)選項。該錯誤導致gcovr從「/」級搜索gcda文件,這需要很長時間。修復方法是在第1828行用方括號括住參數「options.root」,即get_datafiles([options.root])。有關更多信息,請參閱https://github.com/gcovr/gcovr/pull/27

爲了讓gcovr 3.1在目錄樹中的源高於對象(和gcno)目錄時正確設置源鏈接,我必須將修補應用於問題27(根無限循環),42 (修正gcov不正確的相對路徑)和49(gcovr無法使用gcov 4.8.2找到源文件)。這裏是一個可視化我的源區:

的src /富/ * CC

的src /富/ .OBJ /株/ *Ø