문제

나는 최근에 대안에 대한 질문을 받았다 은폐 방지 C/C ++ 및 Java를 모두 포함하는 코드베이스의 경우. 분명히 Java 측에서 사용 가능한 무료 도구에는 FindBugs (컴파일 코드 분석) 및 PMD (정적 코드 분석)가 포함됩니다. 특히 IDES와의 통합을 조사하기 시작할 때 매우 강력합니다 (다시 무료).

그러나 다양한 컴파일러, 아키텍처 등으로 C/C ++ 영역으로 이동하기 시작할 때 상황이 더 칙칙합니다.

FindBugs와 PMD를 포함하여 Java 측을위한 다양한 도구를 제안했습니다. 내가 찾고있는 것은 다음 메트릭을 사용하는 것을 고려할 때 C/C ++ 측에 가장 적합한 옵션입니다.

  1. 가격 : 무료는 더 좋지만 더 나은 가치로 이길 수 있습니다. 그러나 코드 줄 당 청구되는 가격 모델은 끔찍합니다.
  2. 기능 세트 :이 도구는 어떻게 내 인생을 더 좋게 만드는가? 체크인하기 전에 실수를 감지하는 방법, 코드 등을 배송하기 전에 실수를 감지합니까?
  3. 유용성 : 책상에서 도구를 사용할 수 있습니까? 보고서 및 / 또는 결과를 공유 할 수 있습니까? 도구를 FOGBUGZ (내 그룹에서 사용하는)와 통합 할 수 있습니까? 도구를 cruisecontrol (또는 동등한)에 통합 할 수 있습니까?

궁극적 인 도구는 FindBugs와 PMD와 동일한 기능 세트의 조합만큼 유용하고 유용 할 수있는 것입니다.

도움이 되었습니까?

해결책

떠오르는 두 사람은입니다 부목 C와 CPPCHECK C ++의 경우.

더 많은 옵션을 찾고 싶다면 이러한 도구 의이 기능은 "정적 코드 분석"입니다. C 및/또는 C ++를위한 더 많은 도구를 찾는 데 도움이 될 수 있습니다. 또한 질문에 대한 답에 관심이있을 수 있습니다. "어떤 오픈 소스 C ++ 정적 분석 도구를 사용할 수 있습니까?"

다른 팁

C ++는 툴링 (예 : 리팩토링 또는 정적 분석 도구)이 Java 또는 C#만큼 좋지 않은 충분한 언어입니다.

Gimpel 소프트웨어 PC 린트 내가 아는 C ++의 표준 버그 확인 도구와 가장 가까운 것입니다. 합리적인 가격 책정 모델이있는 광고입니다. 다른 도구와 얼마나 잘 통합되는지 모르겠습니다.

그만큼 그 소리 오픈 소스 프로젝트는 결국 당신이 원하는 많은 일을 할 수 있어야합니다. 진짜 쿨), 그러나 여전히 개발 중입니다.

PC-Lint는 갈 길입니다. 대부분의 다른 도구와 달리 전체 기능 및 모듈 간 값 추적이 있으며 템플릿 컴파일/구문 분석의 모든 털이 많은 가장자리도 지원합니다. 나는 약 9 년 전에 개인 사본을 샀습니다. 나는 오픈 소스 프로젝트에서 그것을 많이 사용하게되었습니다. PC-Lint는 LOC를 기반으로 라이센스가 없으며 집에 전화하지 않으며 라이센스 서버가 없습니다. 그것은 명예 시스템에 매우 많고 말도 안됩니다. 9 년 동안, 나는 그 문제에서 몇 가지 문제를 발견했지만 (그리고 그 사이에는 거의 없었지만) 거의 몇 주 안에 거의 항상 고정되었습니다.

Open-Source Wise, 와인 프로젝트는 크게 효과적으로 사용하는 Coverity의 메타 컴파일 분석 기술을 기반으로 한 스태치가 있습니다. PMD의 CPD (Copy Paste Detector) 하위 툴은 C ++에서 작동하며 실제로 빠릅니다. 순환 복잡성을 위해 APT-GET (Linux; Windows에서는 Cygwin 아래에서 소스를 컴파일하는)를 통해 쉽게 설치할 수있는 PMCCABE가 있습니다.

PC-Lint는 하루나 이틀 동안 잘 작동하기 위해 약간의 구성이 필요합니다. 다른 도구는 깊이 작동하지 않으므로 "찾기 .- 이름 .씨 | xargs pmccabe | 정렬 -n | 꼬리 -N 20 "

나는 사용했다 klocwork 그리고 합리적인 소프트웨어 분석기 과거에는 모두 상업적/비가없는 것이지만 둘 다 잘 작동합니다.

C/C ++에서 160 개의 위험한 기능을 스캔하는 flawfinder.py를 사용합니다.http://www.dwheeler.com/flawfinder/

Flawfinder를 기반으로 Ruby 포트를 원한다면 vulnxpose.rb를 사용할 수 있습니다.https://github.com/nanotechz9l/source-code-analyzer

이 두 도구는 버퍼 오버플로, 레이스 조건, 약한 암호화, Chroot Jail Configs ... 등을 포함한 알려진 취약점에 대해 C/C ++ 소스 코드 파일을 스캔합니다).

약간 뒤틀리게 하다

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