2016-11-08 1 views
0

"--coverage -fprofile-arcs -ftest-coverage"로 범위 테스트를 위해 프로젝트를 빌드 한 다음 테스트를 실행하기 위해 빌드와 소스를 다른 사용자 디렉토리로 이동하십시오. "열 수 없습니다 소스 파일 XXX/CC/CC/getopt_log.c"아래로어떻게 참조 된 소스 파일의 경로를 변경하려면 gcda?

세부 사항 : 처리 CS/CMakeFiles/CFA/__/SRC/기본/fault_injection I는 다음과 같은 많은 문제를 얻을 것이다. 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을 사용하려고했는데, 이것들은 나에게 잘 맞지 않는다.

또한 lcov에 -b 옵션을 추가하려고했지만 나에게 잘 맞지 않습니다. 예 : lcov --gcov-tool =/bin/gcov -d. -b xx/src -t "xfcq"-o test_cov.info

해결할 생각이 있습니까?

답변

0

gcov 커버리지 프로세스를 사용하면 프로젝트를 빌드 한 후에 파일을 절대 이동해서는 안되며 자동 빌드 스크립트를 수정하여 원하는 위치로 모든 것을 빌드해야합니다.

지정한 옵션으로 프로젝트를 컴파일하면 각 소스 파일에 대해 *.gcno 개의 파일이 생성됩니다.이 파일은 반드시 관련 소스 파일의 세부 사항과 같은 순서도입니다.
따라서 모든 실행 정보가 포함 된 파일을 *.gcda 개 생성하기 위해 명령문 행을 실행할 때마다 객체 파일에 기능을 트리거하여 (적용 범위 정보를 생성하기 위해 컴파일러에서 추가) 그러한 방법으로 인스트루먼트됩니다.
참고 : --coverage은 다른 두 가지의 대체품으로 작동하므로 잘못된 3 가지 옵션 (--coverage -fprofile-arcs -ftest-coverage)이 다시 잘못된 것으로 나타났습니다.

--coverage 만 지정하면 컴파일 및 링크도 수행됩니다. (두 위치 모두에서 적극적으로 사용하십시오)

관련 문제