다음을 통해 공유


C/C++용 코드 분석 개요

업데이트: 2007년 11월

C/C++ 코드 분석 도구는 C/C++ 소스 코드에서 발생할 수 있는 오류에 대한 정보를 개발자에게 제공합니다. 이 도구를 통해 보고되는 일반적인 코딩 오류에는 버퍼 오버런, 초기화되지 않은 메모리, null 포인터 역참조, 메모리 및 리소스 누수 등이 포함됩니다.

IDE(통합 개발 환경) 통합

개발자가 자연스럽게 분석 도구를 사용할 수 있도록 분석 도구가 IDE에 완벽하게 통합되었습니다. 빌드 프로세스에서 소스 코드에 대해 생성된 경고가 오류 목록에 나타납니다. 이러한 경고에는 오류 경로 정보(있을 경우)가 포함됩니다. 경고를 두 번 클릭하면 해당 경고와 연결된 오류 경로가 강조 표시됩니다.

#pragma 지원

다음 예제와 같이 개발자는 #pragma 지시문을 사용하여 경고를 오류로 처리하고 경고를 사용하거나 사용하지 않을 수 있습니다.

#pragma warning (error: 6260)

#pragma warning (disable: 6011)

#pragma warning (enable: 6056)

주석 지원

주석을 사용하면 코드 분석의 정확성이 높아집니다. 주석은 함수 매개 변수와 반환 형식에 대해 pre 및 post 조건에 대한 정보를 제공합니다.

#include <CodeAnalysis/SourceAnnotations.h>

[returnvalue:Post( MustCheck=SA_Yes )] double* CalcSquareRoot

(

    [Pre( Null=SA_No )] double* source,

    unsigned int size

);

이전 예제의 경우 다음과 같습니다.

[Post ( MustCheck=SA_Yes)]는 호출자가 CalcSquareRoot의 반환 값을 검사하도록 요구합니다.

[Pre ( Null=SA_No)]는 호출자가 null이 아닌 매개 변수 "source"를 CalcSquareRoot에 전달하도록 요구합니다.

체크 인 정책의 일부로 분석 도구 실행

조직에서 반드시 특정 정책에 따라 체크 인을 수행하려는 경우 특히 다음 정책을 따르는지 확인할 수 있습니다.

  1. 체크 인할 코드에 빌드 오류가 없습니다.

  2. 최신 빌드의 일부로 코드 분석을 실행합니다.

체크 인 정책을 지정하여 위 사항을 확인할 수 있습니다.

Team System 팀 빌드 통합

빌드 시스템의 통합된 기능을 사용하여 빌드 프로세스의 일부로 분석 도구를 실행할 수 있습니다. 자세한 내용은 Team Foundation Build 개요를 참조하십시오.

명령줄 지원

개발 환경 내에 완벽하게 통합된 분석 도구 외에 개발자는 다음 예제처럼 명령줄에서도 분석 도구를 사용할 수 있습니다.

C:\>cl /analyze Sample.cpp