2010-07-11 5 views
5

iPhone 프로젝트 에 gcov를 사용하려고 시도하고 Apple의 지침 (here)을 따르지 만 작동하지 않습니다.iPhone : 어떻게 gcov를 사용할 수 있습니까?

구성 프로젝트를 빌드 할 때 각 개체 파일에 대해 .gcda 파일이 만들어집니다. 그러나 실행 된 행은 .gcda 파일에 기록되지 않습니다. (CoverStory는 모든 보상 범위가 0 %임을 보여줍니다.)

다음과 같이 템플릿 프로젝트에 간단한 클래스를 추가했습니다.

@interface SomeClass : NSObject 
- (void)func1:(BOOL)flag; 
@end 

@implementation SomeClass 
- (void)func1:(BOOL)flag { 
    if (flag) { 
    NSLog(@"flag is YES"); 
    } 
    else { 
    NSLog(@"flag is NO"); 
    } 
} 
@end 

나는이 클래스를 할당 및 응용 프로그램에서 func1 전화 : didFinishLaunchingWithOptions을 을 나는 SomeClass의 범위가 (그래서 50 %)을 보였다된다 예상했다.

OSX 10.6.4, iPhone SDK 4.0 및 Xcode 3.2.3을 사용하고 있습니다. 더 많은 구성이 필요합니까? 안내해주십시오.

UPDATE 2010/7/15 :

내가 link @tonclon에 이러한 힌트를 시도했다가 내게 준,하지만 아직 작동하지 않았다. 다음 설명은 내가 시도한 것입니다. YES로
  • 설정 GCC_GENERATE_TEST_COVERAGE_FILES YES를 "코코아"응용 프로그램의 프로젝트 설정에서 GCC 4.0 에 의해 컴파일

    1. 코코아 응용 프로그램,

      • 설정 GCC_INSTRUMENT_PROGRAM_FLOW_ARCS는
      • 는 -lgcov하는 다른 링커 플래그 설정
      • 집합 C/C++ 컴파일러 버전 4.0

      예상대로 작동하여 .gcda 파일이 적용 범위 정보와 함께 생성되었습니다. GCC 4.0 구글 - 도구 상자 에서 사용자 정의 gcov의 라이브러리를 사용하여 SDK 4.0 (예 : 블록)

    2. 일부 구문을 컴파일 할 수 없기 때문에 SDK 4.0 아이폰 프로젝트에서 그러나, 나는 동일한 구성을 사용할 수 없습니다 다른 링커 플래그에서 -lgcov를 설정하는 대신 custom gcov library included in google-toolbox-for-mac, 을 시도했지만 .gcda 파일은 0 %의 적용 범위를 보여줍니다. (같은 결과)

    다음에 내가해야 할 일을 말해 줄 수 있습니까? 모든 제안을 부탁드립니다.

  • +0

    여기에 제공된 모든 힌트를 따랐습니까? http : // stackoverflow.com/questions/1385568/why-doesnt-gcov-report-any-lines-being-by-my-unit-tests – tonklon

    +0

    @tonclon 정보를 보내 주셔서 감사합니다. 링크에서 이러한 힌트를 시도했지만 아직 작동하지 않았다. 나는 내 질문을 업데이트하고있다. 이 문제에 대한 힌트를 좀 더 알려주시겠습니까? – taichino

    +0

    다소 도움이되지 않지만 gcov는 더 이상 지원되지 않습니다. 우리는 그것을 사용하는 것을 포기했다. –

    답변

    0

    몇 가지 :

      해제
    1. 접두사 헤더

    여기 gcov의 페이지를 확인하시기 바랍니다 "제대로"종료해야합니다 (http://code.google .com/p/google-toolbox-for-mac/w/list)를 확인하고 도움이되는지 확인하십시오. gcov는 Xcode 3.2.5 및 iOS4.2에서 작업하고 있습니다.

    관련 문제