TCOV

Tcov
TCOV
개발자오라클 코퍼레이션
운영 체제솔라리스
플랫폼SPARC
유형코드 커버리지
면허증.Sun Studio 제품 라이센스에 설명된 대로 다운로드하여 사용할 수 있습니다.
웹 사이트developers.sun.com

Tocv는 Fortran, CC++로 작성된 소프트웨어용 소스 코드 범위 분석 및 스테이트먼트 바이 스테이트먼트 프로파일링 도구입니다.Tocv는 프로그램 내의 각 스테이트먼트가 실행되는 횟수의 정확한 카운트를 생성하고 소스 코드에 주석을 달아 계측을 추가합니다.Sun Studio 소프트웨어와 함께 무료제공되는 표준 유틸리티입니다.

tocv 유틸리티는 프로그램이 코드 세그먼트를 실행하는 빈도에 대한 정보를 제공합니다.실행 빈도로 주석이 달린 소스 파일의 복사본을 생성합니다.코드는 기본 블록 수준 또는 소스 라인 수준에서 주석을 달 수 있습니다.기본 블록 내의 스테이트먼트가 같은 횟수로 실행되므로 기본 블록 실행 횟수는 블록 내의 각 스테이트먼트가 실행되는 횟수와 같다.tocv 유틸리티는 시간 기반 데이터를 생성하지 않습니다.

묘사

tocv는 컴파일된 프로그램의 테스트 적용 범위 분석을 생성합니다.tocv는 소스 파일을 인수로 사용하여 주석이 달린 소스 목록을 생성합니다.코드의 각 기본 블록(또는 tocv에 대한 특정 옵션이 지정되어 있는 경우는 각 행)에는 실행 횟수가 선두에 붙습니다.실행되지 않은 행에는 "####"이 선두에 붙습니다.

tocv 유틸리티는 주석이 달린 프로그램 목록 끝에 요약도 배치합니다.가장 자주 실행되는 기본 블록의 통계 정보는 실행 빈도 순으로 나열됩니다.행 번호는 블록의 첫 번째 행 번호입니다.

TCOV에는 다음 두 가지 구현이 있습니다.

  • 구식 적용 범위 분석:[1]tocv original이라고도 불리는 이 구현에서는 컴파일러는 각 오브젝트 파일에 .d라는 서픽스를 붙여 커버리지 데이터 파일을 작성합니다.프로그램이 완료되면 커버리지 데이터 파일이 업데이트됩니다.
  • 새로운 스타일의 적용 범위 분석:[2]tocv 확장이라고도 하는 이 구현에서는 컴파일 시 추가 파일이 생성되지 않습니다.대신 프로파일 데이터를 저장하기 위해 디렉토리가 생성되고 해당 디렉토리에 tcvd라는 단일 커버리지 데이터 파일이 생성됩니다.

확장 커버리지 분석을 통해 다음과 [3]같은 원래 분석 도구의 일부 단점을 극복합니다.

  • C++를 보다 완전하게 서포트합니다.
  • #include 헤더 파일에 있는 코드를 지원하고 템플릿 클래스 및 함수에 대한 탐지 범위 번호를 가리는 결함을 수정합니다.
  • 기존 TCOV 런타임보다 더 효율적인 런타임.
  • 컴파일러가 지원하는 모든 플랫폼에서 지원됩니다.

실행

주석이 달린 소스 코드를 생성하려면 다음 세 단계가 필요합니다.[4]

  • 적절한 컴파일러 옵션을 사용한 코드 컴파일
  • 프로파일 데이터를 축적하기 위한 프로그램 실행
  • tocv 명령 실행으로 주석 첨부 파일 생성

이후 실행할 때마다 더 많은 탐지 범위 데이터가 프로파일 데이터 파일에 누적됩니다.재컴파일 후 프로그램을 처음 실행할 때 각 오브젝트 파일의 데이터가 제로화된다.tocvd [5]파일을 삭제하면 프로그램 전체의 데이터가 0이 됩니다.

이하에서는, 원래의 TCO와 확장 TCO의 양쪽 모두에 대해서, 상기의 순서는 다음과 같습니다.

구식 커버리지 분석

소스 코드는 C 프로그램의 경우 -xa 옵션, Fortran 및 C++ 프로그램의 경우 -a 옵션으로 컴파일됩니다.컴파일러는 각 오브젝트 파일에 .d라는 서픽스를 붙여 커버리지 데이터 파일을 작성합니다.커버리지 데이터 파일은 환경변수 TCOVDIR에 의해 지정된 디렉토리에 작성됩니다.TCOVDIR 가 설정되어 있지 않은 경우는, 커버리지 데이터 파일이 현재의 디렉토리에 작성됩니다.위의 계측 빌드가 실행되고 프로그램이 완료되면 .d 파일이 업데이트됩니다.마지막으로 tocv 명령어를 실행하여 주석이 달린 소스 파일을 생성합니다.tocv 명령어의 구문은 다음과 같습니다.

tocv 옵션source-file-list

여기서 source-file-list는 소스 코드 파일 이름 목록입니다.옵션 목록의 경우 tcov의 기본 출력은 각각 .tcov라는 접미사가 붙은 파일 세트이며 -o 파일 이름 옵션을 사용하여 변경할 수 있습니다.

코드 커버리지 분석을 위해 컴파일된 프로그램은 여러 번 실행할 수 있습니다(입력 내용이 다를 수 있음). 각 실행 후 프로그램에서 tocv를 사용하여 동작을 비교할 수 있습니다.

새로운 스타일의 커버리지 분석

소스 코드는 -xprofile=syslogv 옵션을 사용하여 컴파일됩니다.기존 모드와 달리 향상된 TCOV는 컴파일 [6]시 파일을 생성하지 않습니다.위의 계측 빌드가 실행되어 프로그램 완료 시 프로파일 데이터를 저장하는 디렉토리가 생성되고 해당 디렉토리에 tocvd라는 단일 커버리지 데이터 파일이 생성됩니다.tocvd는 회선 번호 및 실행 카운트에 대한 정보를 유지합니다.일반 텍스트 파일입니다.기본적으로 디렉터리는 프로그램이 실행되는 위치에 생성되며 실행 파일의 이름을 따서 .profile로 지정됩니다.디렉토리는 프로파일버킷이라고도 불립니다프로파일 버킷의 위치는 SUN_PROFDATA_DIR 또는 SUN_PROFDATA 환경변수를 설정하여 덮어쓸 수 있습니다.마지막으로 tocv 명령어를 실행하여 주석이 달린 소스 파일을 생성합니다.tocv 명령어의 구문은 필수 -x 옵션을 제외하고 원래 명령어와 동일합니다.

tocv 옵션 -x profilebucket source-file-list

명령어가 원래 toscv와 유일하게 다른 점은 -x dir 옵션이 추가되어 toscv가 향상되었다는 것입니다.

C 프로그래밍 언어로 작성된 다음 프로그램은 정수 1~9를 루프하고 계수(%) 연산자를 사용하여 정수 1~9의 나눗셈성을 테스트합니다.

#실패하다 <stdio.h>  인트 주된 (무효) {   인트 i;    위해서 (i = 1; i < > 10; i++)     {       한다면 (i % 3 == 0)         인쇄물 (%d는 3으로 나누어집니다.\n", i);       한다면 (i % 11 == 0)         인쇄물 (%d는 11로 나누어집니다.\n", i);     }    돌아가다 0; } 

커버리지 테스트를 유효하게 하려면 , 다음의 옵션을 사용해 프로그램을 컴파일 할 필요가 있습니다.

구식 코드 커버리지를 위해

cc -xa cov.c

새로운 스타일의 코드 커버리지를 위해

cc -xprofile=syslogv -o cov.c

여기서 cov.c는 프로그램파일 이름입니다이렇게 하면 프로그램의 각 행이 실행되는 횟수를 기록하는 추가 명령이 포함된 계측된 실행 파일이 생성됩니다.-o 옵션은 실행 파일의 이름을 설정하는 데 사용됩니다.그런 다음 실행 파일을 실행하여 적용 범위 데이터를 생성해야 합니다.구식 코드 분석과 신식 코드 분석을 위해 이 파일의 생성 및 위치가 다릅니다.구식 분석에서는 컴파일 에 TCOVDIR 디렉토리 또는 현재 파일 중 하나에 작성된 확장자 .d가 커버리지 데이터로 업데이트됩니다.새로운 스타일의 분석에서는 <executable name>.profile 디렉토리에 toscvd라는 이름의 커버리지 데이터 파일이 생성됩니다.이 데이터는 tocv 명령 및 소스 파일 이름을 사용하여 분석할 수 있습니다.

구식 코드 커버리지를 위해

tcov cov.c

새로운 스타일의 코드 커버리지를 위해

tcov - x cov.profile cov.c

새로운 스타일 분석의 addition 인수는 프로파일버킷입니다tocv 명령어를 사용하면 파일 확장자가 .tcov인 원래 소스 파일의 주석 버전이 생성됩니다.각 행이 실행된 횟수의 카운트가 포함됩니다.

        #실패하다 <stdio.h>          인트         주된 (무효)         {      1    인트 i;      10    위해서 (i = 1; i < > 10; i++)             {      9        한다면 (i % 3 == 0)      3          인쇄물 (%d는 3으로 나누어집니다.\n", i);      9        한다면 (i % 11 == 0) #### printf("%d는 11\n", i);      9      }       1    돌아가다 0;      1  } 

tocv 유틸리티는 주석이 달린 프로그램 목록 끝에 요약도 배치합니다.가장 자주 실행되는 기본 블록의 통계 정보는 실행 빈도 순으로 나열됩니다.행 번호는 블록의 첫 번째 행 번호입니다.

명령줄 옵션

Tocv 명령줄 유틸리티는 프로파일 [7]데이터에서 주석 첨부 파일을 생성하면서 다음 옵션을 지원합니다.

  • a: 각 스테이트먼트의 실행 횟수를 표시합니다.이 옵션을 지정하지 않으면 코드 블록의 선두에 대해서만 실행 횟수가 표시됩니다.
  • -n: 가장 자주 실행되는 n개의 문장과 그 실행 횟수를 나타내는 테이블.
  • -o 파일 이름:출력을 file.tcov 대신 filename으로 지정합니다.이 옵션은 -를 지정하여 출력을 표준 출력으로 유도하는 데 사용할 수 있습니다.
  • -x dir: 이것은 새로운 스타일의 커버리지 분석에서 지원됩니다.이 옵션이 지정되지 않은 경우 이전 스타일의 TCO가 적용된다고 가정합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Original Tcov statement-by-statement analysis". Retrieved 6 Feb 2012.
  2. ^ "Enhanced Tcov statement-by-statement analysis". Retrieved 6 Feb 2012.
  3. ^ "Improved features of tcov enhanced over tcov original". Retrieved 6 Feb 2012.
  4. ^ oracle.com. "steps required to generate annotated source code".
  5. ^ www.sics.se. "SunOS manual page".
  6. ^ docs.oracle.com. "enhanced tcov".
  7. ^ developers.sun.com. "Tcov documentation". Retrieved Feb 7, 2012.