문제

나는 프로젝트에서 작업하는 곳에 나는 코딩에서는 C UNIX 환경에서.용 보풀을 확인하는 도구는 내 소스 코드입니다.보풀 주변되었습니다 오랜 시간이기 때문에(1979),할 수 있는 사람이 더 최근의 제안 코드를 분석 도구를 사용할 수 있는?바람직하게는 도구를 무료입니다.

도움이 되었습니까?

해결책

을 간과하지 않는 컴파일러 자체입니다.

읽을 컴파일러는 설명서를 찾는 모든 경고와 오류를 제공할 수 있고,그 사용으로 많은으로 만들에 대 한 정보를 찾을 수 있습니다.

또한지 확인에게 컴파일러를 치료하는 경고가 같은 오류가 그래서 당신은 강제로 그들을 해결합니다.("-Werror"에 gcc)

도:"벽에서"gcc 가 사용하고,모든 경고를 속지 않습니다.

또한 또:체크아웃 valgrind(무료!) -그것은"자동으로 감지[s]많은 메모리 관리 및 스레딩 버그,프로필[s]프로그램에서 세부 사항입니다."

Valgrind 지 않는 정적 검사기,하지만 그것은 훌륭한 도구입니다! http://valgrind.org

다른 팁

C 코드,당신은 확실히 해야 합니다 확실히 사용 Flexelint.내가 사용하는것이 거의 15 년에 의하여 맹세하다.중 하나는 정말 좋은 기능이 있는 경고할 수 있 선택적으로 꺼져 있고에 코멘트를 통해 코드에서("/*보풀-e123*/").이 되는 강력한 문서 도구를 때 당신이 원하는 무언가가 있습니다."나는 끄고 경고 X,따라서 거기에 몇 가지 좋은 이유하고 있어요 X."

한 사람으로 재미있는 C/C++질문에 보면,일부는 그들의 예에는 자신의 사이트에서 참조할 수 있는 경우 그 밖의 버그를 보지 않고합니다.

들을 대 그램에 정적 해석기, 는 IIRC 러나 난이도 있는 기술을 사용하기로 합니다.는 경우에는 구현된 플랫폼에 있을 수 있는 좋은 선택이 될 것입니다.

에서 내가 이해,그것보다는 더 그냥 구문 분석합니다."자동 버그를 찾기",에 대한 인스턴스입니다.

우리가 사용 중이었다 Coverity 방지 을 확인 C++소스 코드입니다.

그것은 무료 도구(지만 나는 그들이 제공하는 무료 스캐닝에 대한 오픈 소스 프로젝트)지만,그것은 최고의 중 하나는 정적 분석 도구를 찾을 수 있습니다.내가 들었어요 심지어 더 인상적이 C 이상에서는 C++,하지만 그것은 우리를 도왔을 피하의 꽤 번호를 버그니다.

나는 최근에 컴파일된 모든 목록을 정적 분석 도구는 내가 나의 처분,나는 아직을 평가하는 과정에서 그들을 모든.참고,이들은 대부분의 보안 분석 도구입니다.

당신이 사용할 수 있는 cppcheck.그것은 쉬운 사용하는 코드는 정적 분석 도구입니다.
예를 들어:
cppcheck --enable=all .
됩니다 C/C++파일에 현재 폴더에 있습니다.

린트천-도구와 같은 일반적으로 고통에서"false"알람 문제가:그들은 보고서에는 더 많은 문제보다는 정말 존재한다.는 경우의 비율은 진정으로 유용-경고가 너무 낮고,사용자 배운다를 무시하는 도구입니다.더 현대적인 도구를 소비하는 노력에 집중하는 가능성이 가장 높/흥미로운 경고입니다.

PC-lint/Flexelint 은 매우 강력하고 유용한 정적 분석 도구,그리고 고도로 구성하지만,슬프게도 무료로하지 않습니다.

을 때 첫 번째 도구를 사용하여 다음과 같이,그들은 생산할 수 있는 거대한 숫자의 경고를 만들 수 있는 사이에 분화하기 위하여 열심히 중요하고 작은 것들입니다.따라서,그것은 최고의 도구를 사용하여 시작하는 코드로 프로젝트 초기에 가능한 한 다음 그것을 실행에서 당신의 코드를 가능한 한 자주할 수 있도록,처리는 새로운 경고 그들이 올라와 있다.

지속적인 사용하여 다음과 같이,당신은 곧 당신이는 방법을 쓰는 코드에서는 방법을 확인하는 규칙에 의해 적용되는 도구입니다.

이 때문에,내가 선호하는 도구는 다음과 같 보풀이 있는 실행이 상대적으로 빠르게,그리고 그렇게 격려하여 지속적으로 사용하기보다는 더 복잡한 도구할 수 있는 끝까지 사용하여 적은 수시로,모든 경우.

시도할 수 있습니다 CppDepend, 예쁜 완전한 정적 해석기에서 사용할 수 windows 와 리눅스,통하여 대 플러그인 IDE 또는 명령 라인,그리고 그것은 무료에 대 오픈 소스 기여자

당신이 찾을 수 있습니다 Uno 도구 유용합니다.그것은 하나의 몇 가지 무료 아닌 장난감 옵션이 있습니다.그것은 다른 에서 보푸라기,Flexelint,etc.에 초점을 맞추고 소수의"의미"오류(null pointer derefs,범위를 벗어나는 배열 색인,의 사용을 초기화되지 않은 변수).그것은 또한 사용자 정의할 수 있습니다 검사처럼,자물쇠 자물쇠로 여는 분야입니다.

나는 작업으로 공중의 출시 후계자,도구 오리온 (지 않는 콘텐츠 사용할 수 있는 더 이상)

이"-Weffc++"옵션을 위한 gcc 에 따라 Mac OS X 남자 페이지:

경고의 위반에 대해 다음 스타일 가이드라인을 따라 스콧 메이어의 효과적인 C++책:

[싹둑]

나는 당신에 대해 물었 C 지만,이것은 가장 가까운 알고 있습니다.

lint 은 지속적으로 업데이트되...왜 당신이 원하는 더 많은 최근의 하나입니다.

BTW flexelint lint

안녕하세요,

나는 완전히 동의를 읽고 소화하는 컴파일러입니다 당신이 말한 후 설정하는 모습을 선보입니다.

좋은 정적 분석 도구에 대한 보안 FlawFinder 에 의해 작성된 데이비드 윌.그것은 좋은 일을 찾고 있는 다양한 보안 취약

그러나,그것을 대체하지 않는 지식이 있는 사람이 읽기를 통해 당신의 코드입니다.으로 다윗이 자신의 웹 페이지의"바보는 도구로는 여전히 fool!"

환호

Rob

내가 찾는 그것의 일반적으로 최고 사용하는 여러 정적 분석 도구를 찾을 수 있습니다.모든 도구가 다르게 설계 및을 찾을 수 있습니다 그들은 매우 다른 것입니다.

거기에 몇 가지 좋은 토론에서 일부의 말씀 .그것은 회의에서 개최하여 미국 국토 안보부에 정적 분석입니다.

스파 컴퓨터 소프트웨어 도구를 이미 사용할 수 있는 리눅스에서 찾을 수 있도록 설계되었 가능한 오류 코딩에서 리눅스 커널입니다.

가 있는 두 개의 활성화 프로젝트의 리눅스 센터 검증 목적 개선 품질의 적재 가능한 커널 모듈을 사용합니다.

  1. 리눅스 드라이버 확인(호텔)-포괄적인 도구를 정적 소스 코드를 확인 리눅스의 장치 드라이버가 있습니다.
  2. KEDR 프레임워크는 확장할 수 있는 프레임워크에 대한 동적분석 및 검증 커널 모듈을 사용합니다.
  3. 다른 지속적인 프로젝트 리눅스 파일 시스템 확인하는 것을 목표로 개발에 전념 도구 집합의 검증을 위해 리눅스 파일 시스템 구현입니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top