2016-11-08 38 views
0

當我使用「--coverage -fprofile-arcs -ftest-coverage」構建覆蓋測試項目時,然後將構建和源移至其他用戶目錄以執行測試。我會遇到很多問題,如「xxx/cc/cc/getopt_log.c:無法打開源文件」如何更改被引用gcda的源文件的路徑?

詳情如下: 處理cs/CMakeFiles/cfa/__/src/base/fault_injection。 c.gcda /home/cov/build/xfcq/src/base/fault_injection.c:cannot開源文件

「/home/cov/build/xfcq/src/base/fault_injection.c」 的路徑是構建環境的路徑,如何將其作爲相對路徑或我指定的路徑進行更改。

我試圖用GCOV_PREFIX和GCOV_PREFIX_STRIP,這些不能很好地爲我工作。

我也嘗試添加-b選項LCOV,它不會對我也很好地工作。 例如,lcov --gcov-tool =/bin/gcov -d。 -b XX/src目錄-t 「xfcq」 -o test_cov.info

你有想法如何解決?

回答

0

那麼使用gcov的覆蓋過程中,你永遠不應該移動文件建設工程之後,而應該修改自動生成腳本構建一切所需的位置。

當你用它生成*.gcno文件爲每一個源文件,這是必然的工藝流程圖的相關源文件的細節指定的選項編譯您的項目。
因此,目標文件以這樣一種方式,他們應該觸發功能儀表(由編譯器添加到生成覆蓋率信息)每當執行語句的任何一行來生成*.gcda文件的所有執行信息。
注意:我可以看到你已經指定了三個選項(--coverage -fprofile-arcs -ftest-coverage),這又是錯誤的,因爲--coverage可以替代另外兩個選項。

如果你只指定那麼它也可以用於編譯和鏈接(不過要記得在兩個地方積極使用它)