CodeChecker를 백엔드로 사용하여 Clang STATIC 분석기 및 Clang Tidy Analyzers에서 감지 한 버그 보고서를 보여주는 VSCODE 용 C/C ++ 코드 분석 플러그인입니다.

PATH 환경 변수에 추가하십시오.compile_commands.json 파일을 생성하기 위해 빌드 환경을 설정하십시오.F9 / Shift-F9 ) 


CodeChecker는 종종 compile_commands.json 이라고하는 생성 된 컴파일 데이터베이스를 읽고이를 기반으로 특정 분석을 실행하여 작동합니다.
CMake 컴파일 데이터베이스 생성을위한 내장 지원이 있습니다. 환경 변수 CMAKE_EXPORT_COMPILE_COMMANDS=ON 설정하면 컴파일 데이터베이스가 빌드 폴더 내부에 있어야합니다. VS 코드에 CMake Tools 확장을 사용하는 경우 Cmake > Build Environment 에서이 플래그를 확장 설정에 추가 할 수 있습니다.
make 및 기타 빌드 시스템에는 컴파일 데이터베이스 생성을위한 내장 지원이 없지만 CodeChecker는 빌드 명령을 기반으로 하나를 생성 할 수 있습니다. 하나를 생성하려면 CodeChecker log -b "[full build command]" -o .codechecker/compile_commands.json 명령을 사용할 수 있습니다.
프로세스를 자동화하기 위해 확장자는 CodeChecker log 명령을 자동으로 실행하는 방법을 제공합니다. 먼저 확장 설정에서 CodeChecker > Executor > Log build command 설정 한 다음 VS Code Task 또는 VS Code Command CodeChecker: Run CodeChecker Log 분석을 실행하십시오. CodeChecker에 전달 된 매개 변수를보다 세밀하게 제어하려면 CodeChecker: Preview CodeChecker log in terminal 실행할 수도 있습니다.
확장자는 CodeChecker 버전 6.18.2 이상을 사용합니다. 설치 경로가 다르거나 CodeChecker가 PATH 환경 변수에 있지 않은 경우 Preferences > Settings > Extensions > CodeChecker > Executable path 에서 수동으로 경로를 설정할 수 있습니다.
확장자는 파일을 저장하거나 CodeChecker: Analyze 명령 중 하나를 사용할 때 프로젝트에서 CodeChecker 분석을 실행할 수 있습니다. CodeChecker의 알림에서 취소 버튼을 클릭하여 분석을 중지 할 수 있습니다. 부분 결과가 자동으로 저장됩니다.
분석은 완전히 구성 가능하며 결과 CodeChecker 명령 줄은 CodeChecker: Show full command line 명령 (지원되는 인수의 경우 CodeChecker analyze --help 실행)으로 미리 볼 수 있습니다. 현재 작업 공간의 설정은 설정의 작업 영역 탭에서 설정할 수 있습니다. 저장에 대한 자동 분석도 구성 할 수 있습니다.
구성 옵션에 대한 자세한 정보는 설정에서 찾을 수 있습니다.
확장자는 다음 명령을 제공합니다.
| 명령 | 설명 |
|---|---|
CodeChecker: Analyze current file | CodeChecker를 사용하여 현재 열린 소스 파일을 분석합니다. CodeChecker의 측면 패널에서 Re-analyze current file 클릭하여 호출 할 수 있습니다.플러그인 설정에서 Run On Save 꺼질 때 유용합니다. |
CodeChecker: Analyze selected files... | CodeChecker를 사용하여 사용자가 선택한 파일을 분석합니다. 여러 파일을 입력으로 허용합니다. |
CodeChecker: Analyze entire project | CodeChecker를 사용하여 전체 프로젝트를 분석합니다. CodeChecker의 측면 패널에서 Re-analyze entire project 하여 호출 할 수도 있습니다.경고 : 전체 분석은 더 큰 프로젝트에서 몇 분 또는 몇 시간이 걸릴 수 있습니다. |
CodeChecker: Stop running CodeChecker instance | 현재 실행중인 분석을 중지합니다. 부분 결과가 저장되고 업데이트됩니다. |
CodeChecker: Run CodeChecker log | 현재 프로젝트를 구축하여 컴파일 데이터베이스를 업데이트합니다. 사용자 정의 사용자 지정 빌드 명령이있는 변형도 사용할 수 있습니다. |
CodeChecker: Preview CodeChecker log in terminal | 현재 CodeChecker 로그 명령은 새 터미널 창으로 붙여져 있으며 실행하기 전에 편집 할 수 있습니다. |
CodeChecker: Show database setup dialog | 기존 컴파일 데이터베이스의 경로를 선택하거나 새 제품을 만들기위한 대화 상자를 보여줍니다. |
CodeChecker: Next reproduction step ,CodeChecker: Previous reproduction step | 표시된 재생 경로의 단계 사이를 이동합니다. CodeChecker의 측면 패널을 통해 보고서의 단계로 직접 탐색 할 수도 있습니다. 기본 키 바인드 : 각각 Ctrl-F7 , Ctrl-Shift-F7 . |
CodeChecker: Show full CodeChecker analyze command line | 파일을 분석하는 데 사용되는 전체 CodeChecker 명령 줄을 표시합니다. 실행하기 전에 분석기의 옵션을 검토하거나 분석을 수동으로 실행하려는 경우 유용합니다. |
CodeChecker: Show Output | 편집기에서 CodeChecker의 출력에 중점을 둡니다. 플러그인의 로그와 이전 CodeChecker 실행의 출력이 여기에 표시됩니다. |
CodeChecker: Reload metadata | CodeChecker의 metadata.json 파일을 Reloads합니다. CodeChecker의 측면 패널에서 Reload CodeChecker metadata 로드하여 호출 할 수 있습니다. |
분석 명령은 작업 양식으로도 사용할 수 있습니다.
| 일 | 동등한 명령 |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...선택된 파일은 전체 경로를 사용하여 selectedFiles 어레이에 나열되어 있습니다. |
{ type: "CodeChecker", taskType: "project" } | CodeChecker: Analyze entire project |
{ type: "CodeChecker log" } | CodeChecker: Run CodeChecker log |
{ type: "CodeChecker log", customBuildCommand: "..." } | CodeChecker: Run CodeChecker log with custom build command |
CodeChecker 관련 경로는 시스템마다 크게 다르므로 설정 메뉴를 통해 다음 설정이 제공됩니다.
| 이름 | 설명 |
|---|---|
| CodeChecker> 백엔드> 출력 폴더 (기본값 : ${workspaceFolder}/.codechecker ) | CodeChecker 분석 파일이 저장된 출력 폴더. |
| CodeChecker> 백엔드> 컴파일 데이터베이스 경로 (기본값 : (빈) ) | 사용자 정의 컴파일 데이터베이스 경로, 사용자 정의 빌드 시스템의 경우. 데이터베이스 설정 대화 상자는 현재 작업 공간의 경로를 설정합니다. CodeChecker의 출력 폴더에서 데이터베이스를 사용하거나 멀티 뿌리 작업 공간에 CodeChecker의 자동 측정을 사용하려면 빈 상태로 두십시오. |
| CodeChecker> 편집기> 사용자 정의 버그 심각도 (기본값 : null ) | 심각도에 따라 편집기에 버그가 표시되는 방법을 제어하십시오. 버그는 '오류', '경고', '정보'또는 '힌트'로 표시 할 수 있습니다. 기본적으로 '스타일'심각도를 제외한 모든 것은 오류로 표시됩니다. { "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| CodeChecker> 편집기> 데이터베이스 대화 상자 표시 (기본값 : on ) | 컴파일 데이터베이스없이 작업 공간을 열 때 대화 상자를 제어합니다. |
| CodeChecker> 편집기> Codelens 활성화 (기본값 : on ) | 편집기에서 재생 경로를 표시 할 Codelens를 활성화하십시오. |
| CodeChecker> Executor> 알림 활성화 (기본값 : on ) | CodeChecker 관련 토스트 알림을 활성화합니다. |
| CodeChecker> 집행자> 실행 가능한 경로 (기본값 : CodeChecker ) | CodeChecker 실행 파일로가는 길. PATH 환경 변수에서 실행 파일이거나 하나의 절대 경로 일 수 있습니다. |
| CodeChecker> Executor> 분석 시간 초과 (기본값 : 60 ) | CodeChecker Analyze 명령에 의해 실행되는 각 개별 분석의 시간 초과 (초) - 타임 아웃을 비활성화하려면 0으로 설정하십시오. |
| CodeChecker> Executor> 스레드 수 (기본값 : (빈) ) | CodeChecker의 스레드 카운트 - 모든 스레드를 사용하려면 비워 두십시오. |
| CodeChecker> 집행자> 인수 (기본값 : (빈) ) | CodeChecker analyze 에 대한 추가 인수. 예를 들어 CodeChecker Pass '--config <config.json>'에 구성 파일을 사용하려는 경우. 지원되는 인수의 경우 CodeChecker analyze --help 실행하십시오.참고 : 결과 명령 줄은 CodeChecker: Show full CodeChecker analyze command line . |
| CodeChecker> Executor> 로그 빌드 명령 (기본값 : make ) | 명령 또는 작업을 통해 CodeChecker log 실행할 때 사용되는 기본 빌드 명령. |
| CodeChecker> 집행자> 로그 인수 (기본값 : (빈) ) | CodeChecker log 에 대한 추가 인수.참고 : 결과 명령 줄은 CodeChecker: Preview CodeChecker log in terminal 명령으로 미리 볼 수 있습니다. |
| CodeChecker> Executor> 저장에서 실행하십시오 (기본값 : on ) | 파일 저장에 대한 CodeChecker의 자동 실행을 제어합니다. |
참고 : Marketplace에서 이미이 확장을 설치 한 경우 먼저 자신의 빌드와의 충돌을 방지하기 위해 먼저 제거하십시오.
이 확장자는 node.js (v12+) 및 원사 (v2+)를 사용합니다. 권장 대 코드 확장자는 eslint 및 typecript+Webpack 문제 일치자입니다.
확장을 구축하고 실행하려면 다음을 수행하십시오.
yarn install --immutable , 종속성을 설치합니다code . 테스트를 실행하려면 활성 디버그 구성으로 확장 테스트를 선택하거나 yarn run test 실행하십시오.
확장은 CodeChecker와 동일한 라이센스 인 Apache 2.0 라이센스에 따라 릴리스됩니다.