코드 분석

신속한 분석

CLion은 잠재적 오류를 찾아내기 위해 코드를 계속 모니터링합니다. 오류가 발견되면 에디터에 의심되는 코드 부분이 강조 표시됩니다. 오른쪽 에디터 거터에 노란색과 빨간색 오류 줄이 표시되며 해당 줄을 클릭하면 탐지된 문제로 이동할 수 있습니다. 또는 F2/Shift+F2를 눌러 강조 표시된 문제를 하나씩 탐색할 수 있습니다. 여백의 맨 위에 있는 상태 표시기를 보면 파일 상태가 요약되어 있습니다.

컴파일 오류를 발견하는 것 외에, CLion은 코드 비효율성을 파악하고 코드 내 데이터 흐름 분석도 수행하여 도달할 수 없거나 사용되지 않는 코드와 기타 문제와 '코드 스멜'을 찾아냅니다.

빠른 수정

CLion의 즉석 코드 검사에는 C/C++의 약 40가지 잠재적 문제 사례와 다른 언어의 몇 가지 문제 사례가 포함되어 있습니다.

문제가 강조 표시되면, 해당 문제 위에 캐럿을 올려놓고 Alt+Enter를 누른 후 제안된 빠른 수정 해결 방법을 선택하세요. 또는 줄 옆에 표시된 전구를 클릭하여 컨텍스트 메뉴로 들어가도 됩니다.

프로젝트 전체에서 모든 유사한 문제를 수정하게 할 수도 있습니다. 검사 결과가 유용하지 않다고 판단되면 원하는 검사 범위로 좁히기 위해 해당 검사를 제외할 수 있습니다.

코드 검사

CLion은 표시된 검사 결과 전체에 상세한 설명을 제공합니다. 검사 결과의 심각도를 관리(Typo(오타), Warning(경고), Error(오류) 등에서 선택)하거나 검사의 매개변수를 조정하여 요구 사항이 더 정확하게 반영되도록 만들 수도 있습니다.

Code(코드) | Inspect Code(코드 검사)에 있는 일괄 수정 모드에서 여러 개 또는 모든 종류의 검사를 실행할 수 있습니다.

전체 코드 베이스에서 특정 문제를 제외하고 싶다면 Run Inspection by Name(이름으로 검사 실행, Ctrl+Alt+Shift+I)을 사용하여 원하는 검사 범위를 선택할 수 있습니다. 검사 결과가 표시된 별도의 창이 열리면 그 창에서 문제를 그룹으로 다시 지정하고, 해당되는 모든 문제에 빠른 수정을 일괄 적용할 수 있습니다.

Clang-Tidy

Clang-Tidy

CLion은 Clang-Tidy와 통합되어 있습니다. Clang-Tidy 검사는 CLion 자체에서 기본 제공되는 코드 검사 기능과 똑같이 표시되며, 빠른 수정 역시 Alt+Enter를 눌러 사용할 수 있습니다.

CLion에서 검사 목록을 사용 설정하거나 중지하려면 Settings(설정)/Preferences(환경 설정) | Editor(에디터) | Inspections(검사) | C/C++ | General(일반) | Clang-Tidy로 이동하세요. Clang-Tidy 명령줄 형식은 텍스트 필드에서 사용됩니다. 기본 구성은 여기에서 확인할 수 있습니다. 또는 Clion에서 제공하는 설정 대신에 .clang-tidy 구성 파일을 사용해 보세요.

C++ Core Guidelines(C++ Core 가이드라인) 또는 Clang Static Analyzer(Clang 정적 분석기) 검사를 활성화하거나, Modernize(최신화) 검사하거나 자신만의 검사를 구현하고 즉시 CLion에서 사용할 수 있습니다.(사용자 지정 검사의 경우, Settings(설정)/Preferences(기본 설정) | Languages & Frameworks(언어 및 프레임워크) | C/C++에서 Clang-Tidy 바이너리를 사용자 고유 바이너리로 변경하세요.)

Clangd 검사

Clangd상에서 수행되는 검사

CLion에서 사용자 지정 Clangd 기반 엔진상에서 수행되는 검사는 다음과 같이 몇가지가 있습니다.

  • 멤버 함수가 정적일 가능성 검사
  • 인수 선택 결함
  • 빈 선언 또는 구문
  • 생성자 또는 소멸자에서 호출된 가상 함수
  • 사용되지 않은 인클루드

‘unused includes’(사용되지 않는 인클루드) 검사는 보수적 검사, 적극적 검사 그리고 "Include What You Use(사용한 것만 포함)" 원칙에 가장 가까운 기본적 검사(Detect not directly used(직접 사용되지 않는 항목 탐지))의 세 가지 검사 방법을 제안합니다.

자세히 알아보기

DFA

데이터 흐름 분석

데이터 흐름 분석(DFA)은 코드의 데이터 흐름을 추적하고 해당 분석을 바탕으로 잠재적인 문제를 탐지합니다. CLion에는 로컬 DFA(하나의 함수 내에서 작동) 외에도 글로벌 DFA(프로그램의 변환 단위 전체를 하나의 분석으로 처리)도 포함됩니다. 글로벌 DFA는 기존 검사를 보강할뿐만 아니라 몇 가지 고유한 검사 기능도 추가합니다.

MISRA

MISRA

CLion에는 MISRA C 2012 및 MISRA C++ 2008의 검사 기능이 함께 제공됩니다. 지원되는 검사의 전체 목록은 Confluence 페이지에 관리하고 있으며, 여기에서 진행 상황을 쉽게 추적할 수 있습니다.