2015-01-14 10 views
3

lcov에서 .gcda 파일과 .gcno 파일을 같은 디렉토리에 생성 할 수는 있지만 어떻게 코드 커버리지를 생성 할 수 있습니까? .gcda 파일과 .gcno 파일을 다른 위치에 있습니까? 예를 들어lcov 및 코드 적용 범위 비교에 따라 .gcda 및 .gcno 파일을 다른 디렉토리에서 처리하는 방법

,

/Users/swd/Library/Developer/Xcode/DerivedData/test1aaeyiowcssrymfbwtudrqqakuvr/Build/Intermediates/test1.build/Cov/test1.build/Objects-normal/x86_64/AppDelegate.gcno

/Volumes/Data/test1/test1/AppDelegate.gcda

내가 --add-추적 파일을 시도했지만 실패, 출력

'lcov : ERROR : 추적 파일에서 찾을 수 없습니다 유효한 기록'

내 두 번째 질문은 lcov가 내 명령을 비교할 명령이 있는지 여부입니다. 차이점을 찾을 수 있도록 새 버전으로 html 버전을 제공합니다.

아이디어가 있으십니까? 감사합니다

답변

0

다른 사람들에게 혼동을 피하기 위해 먼저 몇 가지 사항을 정리해야합니다.

.gcno.gcda은 단일 개체 파일의 다른 위치에 생성되지 않습니다. (적어도 내 경험에서 알 수 있듯이)
자동화 된 빌더 또는 수동 명령을 사용하여 소스 파일을 컴파일하면 동일한 위치에 .gcno 개의 파일과 .o 개의 파일이 생성됩니다. 이후에 어떤 종류의 실행을 수행 할 때 객체 파일은 커버리지 생성 함수를 트리거하고 '.gcno'및 객체 파일과 동일한 위치에 .gcda 개의 파일을 생성합니다.
그리고 서로 다른 .gcno 개의 파일에 대해 생성 된 파일이라면 어쨌든 함께 사용할 수 없습니다.

+0

같은 것을 수행하여 $GCOV_PREFIX.gcno 파일을 해제하는 것입니다 참조하면'에 절대 경로 앞에 해당 경로를 추가합니다. o' 파일을 생성하고 거기서'.gcda' 파일을 생성합니다. – user26756

0

환경 변수 GCOV_PREFIX이 설정된 경우 이러한 현상이 발생할 수 있습니다. here 제안 된 솔루션은 환경 변수가`어떤 경로 gcov를 설정 GCOV_PREFIX`is 경우

rsync -acv --filter='+ */' --filter='+ *.gcno' --filter='- *' <directory-containing-object-files> $GCOV_PREFIX