Linux 및 macOS 플랫폼에서 CLion에 Valgrind Memcheck을 통합하여 메모리 오류 탐지를 지원합니다.
이에 따라 Valgrind Memcheck로 검사 대상을 실행한 다음, Run(실행) 도구 창의 특별 탭에서 결과를 확인할 수 있습니다. Memcheck를 사용해 일반 대상과 유닛 테스트 대상을 모두 실행할 수 있습니다.
WSL 툴체인을 사용하면 Windows 및 원격 모드에서 Valgrind를 이용할 수 있습니다.
Linux 및 macOS에서 주소 지정 가능성 문제와 메모리 누수, 데이터 경쟁, 초기화되지 않은 메모리 문제를 탐지하려면 CLion에 통합된 Google Sanitizer를 사용해 보세요.
-fsanitize
컴파일 플래그로 애플리케이션이나 유닛 테스트를 실행하고 디버그할 때 Clang 3.8.0 이상 또는 GCC 5.0.0 이상을 사용하는 경우 CLion에서 Sanitizer 결과를 Run(실행) 도구 창에 있는 'Sanitizer' 탭에서 시각적으로 표시합니다. 이 탭에서 오류 목록 및 추적 상태를 검토하고 소스로 이동하거나 소스를 검토하며 프레임 정보를 검사할 수 있습니다.
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(커버리지) 도구 창 또는 편집기의 왼쪽 여백에 색상 표시를 통해 제공됩니다.
자세히 알아보기