동적 분석

Valgrind Memcheck

Valgrind Memcheck로 실행

Linux 및 macOS 플랫폼에서 CLion에 Valgrind Memcheck을 통합하여 메모리 오류 탐지를 지원합니다.

이에 따라 Valgrind Memcheck로 검사 대상을 실행한 다음, Run(실행) 도구 창의 특별 탭에서 결과를 확인할 수 있습니다. Memcheck를 사용해 일반 대상과 유닛 테스트 대상을 모두 실행할 수 있습니다.

WSL 툴체인을 사용하면 Windows 및 원격 모드에서 Valgrind를 이용할 수 있습니다.

Google Sanitizer

Google Sanitizer로 실행

Linux 및 macOS에서 주소 지정 가능성 문제와 메모리 누수, 데이터 경쟁, 초기화되지 않은 메모리 문제를 탐지하려면 CLion에 통합된 Google Sanitizer를 사용해 보세요.

-fsanitize 컴파일 플래그로 애플리케이션이나 유닛 테스트를 실행하고 디버그할 때 Clang 3.8.0 이상 또는 GCC 5.0.0 이상을 사용하는 경우 CLion에서 Sanitizer 결과를 Run(실행) 도구 창에 있는 'Sanitizer' 탭에서 시각적으로 표시합니다. 이 탭에서 오류 목록 및 추적 상태를 검토하고 소스로 이동하거나 소스를 검토하며 프레임 정보를 검사할 수 있습니다.

CPU 프로파일러

CPU 프로파일러

CLion에 Linux(Perf) 및 macOS(DTrace)에서 실행되는 CPU 프로파일러가 통합되었습니다. 원격 모드와 WSL에서도 프로파일링이 가능합니다.

CLion에서 프로파일러를 바로 실행하고 분석 결과를 전용 도구 창(View(뷰) | Tool Windows(도구 창) | CPU Profiler(CPU 프로파일러))에서 검토할 수 있습니다.

코드 내 잠재적인 성능 문제의 개요를 더 명확하게 파악하려면 플레임 차트, 호출 트리, 메서드 목록을 사용해 보세요. 코드 소스로 이동해 코드 베이스에서 문제를 검색하세요.

자세히 알아보기

코드 커버리지

코드 커버리지

"Was this statement executed during the configuration run?"(구성 실행 중에 이 구문이 실행되었나요?)라는 메시지를 본 적이 있다는 것은 사용자가 코드를 평가할 Statements Coverage(구문 커버리지)를 찾고 있다는 뜻입니다. CLion 에서는 llvm-cov/gcov 도구와의 통합으로 이 커버리지가 지원됩니다.

라인 커버리지 외에 CLion 은 브랜치 커버리지도 계산할 수 있습니다. 이 메서드는 각 제어 구조의 모든 브랜치를 고려합니다.

구문 커버리지는 유닛 테스트 실행 또는 일반 구성 실행을 진행할 때 구할 수 있습니다. 결과는 Coverage(커버리지) 도구 창 또는 편집기의 왼쪽 여백에 색상 표시를 통해 제공됩니다.

자세히 알아보기