위키득계정 ↗
기술

Clang Static Analyzer

Clang Static Analyzer기술
소속
Clang
분류
소스 코드 정적 분석기
분석 기반
기호 실행
주요 관점
경로와 함수 간 흐름
Clang Static Analyzer는 C와 C플러스플러스, Objective-C 소스의 버그를 찾는 정적 분석기다. 기호 실행을 이용해 실행 경로와 함수 사이의 흐름을 분석한다.

실행 경로를 구분하기

조건문을 만날 때 서로 다른 경로에서 가능한 상태를 구분해 문제를 찾는다. 프로그램을 실제 입력으로 실행하는 동적 검사와 달리 소스를 바탕으로 동작을 분석한다. 함수 사이의 호출 관계도 분석에 반영할 수 있다.

검사와 실행 도구

분석기의 검사 모음은 기본 검사와 실험적 검사 등으로 나뉜다. 프로젝트 규모의 실행에는 Scan-build나 CodeChecker 같은 도구를 사용할 수 있다. 분석 엔진 자체와 빌드 명령을 연결하고 보고서를 관리하는 도구의 역할은 다르다.

결과 해석의 범위

진단을 검토할 때는 제시된 경로와 코드의 실제 전제 조건을 함께 살핀다. 분석 설정과 코드 해석의 한계 때문에 결과를 그대로 정답으로 취급해서는 안 된다. 경고가 없더라도 모든 입력과 환경에서 안전하다는 증명이 된 것은 아니다.

관련 문서

Clang / CodeChecker / Scan-build / Clang-Tidy