위키득계정 ↗
기술

Cppcheck

Cppcheck기술
대상 언어
C와 C++
도구 분류
정적 분석기
주요 관심
정의되지 않은 동작과 결함
입력 방식
소스 경로 또는 프로젝트 설정
Cppcheck은 C와 C++ 소스를 검사하는 정적 분석 도구다. 정의되지 않은 동작이나 위험한 코드 형태를 탐지하며, 명령행이나 그래픽 환경에서 파일과 프로젝트를 분석할 수 있다.

컴파일과 다른 검사 목적

소스가 컴파일된다는 사실과 의도대로 안전하게 동작한다는 사실은 다르다. Cppcheck은 메모리나 자원 사용의 오류, 위험한 코드 패턴 등을 찾는 데 초점을 둔다. 스타일과 이식성 관련 진단도 제공하며 진단 종류를 구분해서 결과를 읽을 수 있다.

프로젝트 조건 반영

소스 파일이나 디렉터리를 지정해 검사할 수 있고 컴파일 데이터베이스나 Visual Studio 프로젝트 설정을 가져올 수도 있다. 전처리 정의와 빌드 구성에 따라 분석되는 코드가 달라진다. 실제 사용하는 구성과 분석 설정의 관계를 확인해야 결과의 적용 범위를 이해할 수 있다.

분석 결과의 범위

표준에서 벗어난 문법이나 컴파일러 확장이 들어간 코드도 분석 대상으로 고려한다. 그렇다고 모든 문법과 결함을 빠짐없이 처리한다는 뜻은 아니다. 정적 분석은 프로그램의 의도를 완전히 알지 못하므로 설계 검토와 테스트, 동적 분석을 보완하는 검사로 사용한다.

관련 문서

GCC / Clang / Coccinelle / Semgrep / CodeQL