문제

Java 는 몇 가지 아주 좋은 오픈 소스 정적 분석과 같은 도구 FindBugs, CheckstylePMD.이러한 툴은 사용하기 쉽고,매우 도움이에서 실행하는 여러 운영 시스템 무료.

상업적인 C++정적 분석이 제품을 사용할 수 있습니다.을 가지고 있지만 이러한 제품은 위대한 비용은 단지 방법으로 너무 많은 학생과 그것은 일반적으로 오히려 하드 평가판을 얻을.

대안을 찾는 것이 오픈 소스 소 C++정적 분석 도구에서 실행되는 다중 플랫폼(Windows 및 Unix).를 사용하여 오픈소스 도구,그것을 수정할 수 있습니다에 맞게 특정 필요합니다.을 찾는 도구되지 않은 쉬운 일이 아니다.

아래의 짧은 목록 C++정적 분석 도구를 발견 또는 제안하여 다른 사람입니다.

어떤 것이 있는 기타 휴대용 오픈 소스 소 C++정적 분석 도구는 누구나 알고 있고의 추천 할 수 있습니까?

관련 링크입니다.

도움이 되었습니까?

해결책

Oink 입 도구의 상단에 내장 Elsa C++front-end.Mozilla 의 돼지고기의 엘/Oink.

보: http://danielwilkerson.com/oink/index.html

다른 팁

CppCheck 오픈 소스 크로스-플랫폼입니다.

Mac OSX:

brew install cppcheck

에 관하여는 GNU 컴파일러,gcc 는 이미 제공할 수 있는 옵션을 추가 경고 그의 벽입니다.옵션 -Weffc++ 그리고 그것에 대해 법 위반행위의 몇 가지 지침의 스코트 마이어스 에 출판된 그의 책"효과적이고 효과적인 C++".

특히 이 옵션을 감지하면 다음과 같은 항목:

  • 정의 복사본을 생성자 및 할당 운영자에 대한 수업과 동적으로 할당되는 메모리.
  • 아보세요 초기화는 할당에서 생성자입니다.
  • 을 소멸자상에 대한 기본 클래스입니다.
  • 는"연산자="에 대한 참조를 반환*다.
  • 하려고하지 않을 반환을 참조해야 하는 경우에 반환 개체입니다.
  • 사이 구별 접두사 및 후 양식의 증가와 감소 연산자입니다.
  • 결 과"&&", "||", 또",".

아래 개발에 대한 지금,하지만 그램 C analysis 를 대상으로하는 핸들 C++니다.그것은 부분의 LLVM 프로젝트입니다.

업데이트:하는 동안 방문 페이지를 말한다"분석은 지속적인 작업 진행",그럼에도 불구하고 지금 문서화 으로 정적 해석기를 위한 C 및 C++.

질문: 는 방법을 실행할 수 있습니 GCC/그램를 위해 정적 분석도 수행할 수 있습니까?(경고)

컴파일러 옵션:-fsyntax-만

다른 사람을 언급-Weffc++,하지만 실제로는 하나의 유일한 GCC 경고 설정하지 않는 기본적으로 설정되어 있습니다.그러나,설정의 경고하는 내가 할 차례에서 가장 중요한 정적 분석 도구는 내 키트입니다.당신이 볼 수 있습니다 완전한 목록을 추천한 경고.

요약:

-현학적 벽-Wextra-Wcast-align-Wcast-qual-Wctor-dtor-개인 정보 보호 Wdisabled 최적화-Wformat=2-Winit-자 Wlogical-op-Wmissing-declarations-Wmissing-을 포함-dirs-Wnoexcept-월드 스타일-캐스트-Woverloaded-virtual-Wredundant-decls-Wshadow-Wsign-전환-Wsign-프로모션-Wstrict-null sentinel-Wstrict-overflow=5-Wswitch 적으로 Wundef-Werror-Wno-사용하지 않는

이 중 일부 요구하는 새로운 버전의 gcc,그래서 당신은 수도에서 그들을 제거해야 목록에 붙어있는 경우에 다시 4.5 또는 무언가이다.

만약에 의해 오픈 소스,당신은 정말 의미는"무료",Microsoft's prefast 분석 좋은 하나입니다.Windows-만 당연히.그것은 완전히 통합 Visual Studio&의 컴파일러입니다.예를 들어:

cl /analyze Sample.cpp

Mozilla 의 정적 분석 작업 아마도 있습니다.

부목 는 것으로 보입니다 이 법안에 대한 C.

만약 당신이 지정하지 않은 오픈 소스를 말 Gimpel 소프트웨어ko PCLint 아마 최고의 도구 중 하나는 정적 해석 코드 검사에서는 C++.하지만,물론 그것은 오픈 소스입니다.

Mac OSX:

brew install splint

Microsoft PREFast 도에서 사용할 수 있는 윈도우 드라이버 키트입니다.7.0 버전을 다운로드 .

Microsoft 문서 국가는 그것을 실행해야 합에 대 한 드라이버 코드 그러나 이(구) 블로그 게시물 는 단계를 실행합니다.아마도 그것이 통합될 수 있습으로 정상적인 빌드 프로세스?

우리는 작업에 Eclipse CDT 플러그인이라고 metriculator.그 아직 개발하지만 일부 주요 메트릭스(예:LSLOC,맥케이브,EfferentCoupling)는 이미 구현했습니다.

http://sinv-56013.edu.hsr.ch/redmine/projects/metricular/wiki/Documentation 자세한 내용처럼 비디오 데모 및 설명서가 포함되어 있습니다.

최신 야간을 구축할 수 있 설치를 위한 업데이트를 통해 사이트: http://sinv-56013.edu.hsr.ch/metriculator/updatesite-nightly/site/

추가 설명

Metriculator 정적으로 분석은 C++소스 코드를 생성합 소프트웨어줍니다.지표로 구현됩니다 Codan 습니다.분석 결과에서 탐색할 수 있는 별도의 보기입니다.각 지표를 구성할 수 있는 속성(예:임계값을 최대 라인의 코드별 기능').이러한 임계값을 초과하는 것을 보고 문제를 만들고 마커 에서 소스 코드 편집기입니다.

와 metriculator 할 수 있습니다:

  • 분석하는 C++파일/폴더/프로젝트
  • 정의 임계값과 측정 활성화/비활성화를 사용하여 메트릭 Codans 환경 설정 페이지
  • 에 문제가 있 마커에서 소스 코드 편집기
  • 탐구 메트릭 결과
  • 내보내기 미터의 결과로 태그 클라우드(으로 사용할 수 있는 옵션 기능을 통해 업데이트 사이트)

현재 metriculator 은 다음과 같은 통계:

  • 맥케이브(순환 복잡성)
  • EfferentCoupling 당 유형
  • 논리적 소스 코드의 라인
  • 구성원 수당 유형
  • 숫자의 매개변수 함수별

당신이 시도해야 oo 브라우저 그것은 멋진 통합과 함께 여러분이 좋아

수도 코드의 확장에서 GCC 녹아 (도메인 특정 언어로 설계 확장을 위한 GCC)또는 GCC 플러그인에서는 C(훨씬 더 열심히)몇 가지 사용자 정의 분석.

물 과학과 같은 다른 분야에 대한 몇 가지 제어 흐름 분석하고 생성합니다.그되지 않을 수 있습 무엇을 찾고 있는지만,나는 foudn 그들에게 유용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top