영어프랑스어스페인어

Ad


온웍스 파비콘

scan-build-3.8 - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 scan-build-3.8를 실행하세요.

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 명령 scan-build-3.8입니다.

프로그램:

이름


스캔 빌드 — Clang 정적 분석기

개요


스캔 빌드 [-ohkvV] [-헤더 분석] [-활성화 검사기 [checker_name]]
[-비활성화 검사기 [checker_name]] [--도움] [--help-checkers]
[--html-제목 [=제목]] [--계속] [-plist] [-plist-html] [--상태-버그]
[--use-c++ [=컴파일러_경로]] [--use-cc [=컴파일러_경로]] [--보다]
[-제약 [모델]] [-최대 루프 N] [-실패 없음 보고서] [-통계]
[-저장 [모델]] build_command [빌드 옵션]

기술


스캔 빌드 Clang 정적 분석기를 호출하는 Perl 스크립트입니다. 사용되는 옵션
스캔 빌드 또는 분석기에 의해 먼저 나타난 다음 build_command
빌드 옵션 일반적으로 대상 시스템을 구축하는 데 사용됩니다.

정적 분석기는 검사 알고리즘의 긴 목록을 사용합니다. 체커. 출력은 다음과 같습니다.
표준 .plist 및/또는 HTML 형식으로 작성되었습니다.

다음 옵션이 지원됩니다.

-헤더 분석
또한 #include 파일의 기능을 분석합니다.

-활성화 검사기 checker_name, -비활성화 검사기 checker_name
켜기 끄기 checker_name. 참조 체커.

-h, --도움
이 메시지를 표시합니다.

--help-checkers
기본 체커 나열, 참조 체커.

--html-제목[=제목]
생성된 HTML 페이지에 사용되는 제목을 지정합니다. 다음과 같은 경우 기본 제목이 생성됩니다.
제목 지정되지 않았습니다.

-k, --계속
'계속 진행' 옵션을 추가하세요. build_command. 현재 make 및
xcodebuild.xcodebuild. 이는 편리한 옵션입니다. 이 동작을 직접 지정할 수 있습니다
빌드 옵션을 사용합니다.

-o HTML 보고서 파일의 대상 디렉터리입니다. 필요에 따라 하위 디렉터리가 생성됩니다.
분석기의 별도 호출을 나타냅니다. 이 옵션을 지정하지 않으면
디렉토리는 다음 위치에 생성됩니다. / TMP (Mac OS X의 경우 TMPDIR)을 사용하여 보고서를 저장합니다.

-plist 결과를 .plist 파일 세트로 출력합니다. (기본적으로 출력은 스캔 빌드 is
HTML 파일 세트.)

-plist-html
결과를 HTML 및 .plist 파일 세트로 출력

--상태-버그
잠재적인 버그가 발견되면 종료 상태를 1로 설정하고 그렇지 않으면 0으로 설정합니다. 기본적으로 출구는
상태 스캔 빌드 그게 에 의해 반환됐나요? build_command.

--use-c++[=컴파일러_경로]
C++ 및 Objective-C++ 코드의 기본 컴파일러를 추측해 보세요. 이 옵션을 사용하면
대체 컴파일러를 지정합니다.

--use-cc[=컴파일러_경로]
C 및 Objective-C 코드의 기본 컴파일러를 추측해 보세요. 이 옵션을 사용하면
대체 컴파일러를 지정합니다.

-v 자세한 출력 스캔 빌드 그리고 분석기. 두 번째와 세 번째 v 증가
다변.

-V, --보다
빌드가 완료되면 웹 브라우저에서 분석 결과를 봅니다.

-제약 [모델]
분석기가 사용하는 제약 엔진을 지정합니다. 기본적으로 '범위' 모델은 다음과 같습니다.
사용된. 'basic'을 지정하면 다음에서 사용하는 더 간단하고 덜 강력한 제약 조건 모델이 사용됩니다.
checker-0.160 이하.

-최대 루프 N
포기하기 전에 블록을 방문할 수 있는 횟수를 지정합니다. 기본값은 4입니다.
속도를 희생하면서 더 포괄적인 범위를 늘리려면 범위를 늘리세요.

-실패 없음 보고서
분석기 충돌 보고서 및 오류를 포함하는 'failures' 하위 디렉터리를 만들지 마십시오.
전처리된 소스 파일.

-통계 분석 중인 프로젝트에 대한 방문 통계를 생성합니다.

-저장 [모델]
분석기에서 사용하는 저장소 모델을 지정합니다. 기본적으로 '지역' 매장 모델은
사용. 'region'은 필드 구분 저장소 모델을 지정합니다. 사용자는 또한 지정할 수 있습니다
훨씬 덜 정확하지만 코드를 더 빠르게 분석할 수 있는 '기본'입니다. '기본'은
checker-0.221 및 이전 버전의 기본 저장소 모델입니다.

EXIT 지위


스캔 빌드 에 의해 반환된 값을 반환합니다. build_command ...을 제외하면 --상태-버그 or --계속
사용.

체커


아래 나열된 체커는 다음을 사용하여 활성화/비활성화할 수 있습니다. -활성화 검사기
-비활성화 검사기 옵션. 명시적으로 비활성화하지 않는 한 기본 검사기 그룹이 실행됩니다.
기본 그룹을 구성하는 체커가 정확히 무엇인지는 운영 체제의 기능에 따라 다릅니다.
사용; 그들은 다음과 같이 나열되어 있습니다 --help-checkers.

core.AdjustedReturnValue
함수 호출의 반환 값이 호출자와 다른지 확인하세요.
기대합니다(예: 함수 포인터를 통한 호출에서).

core.AttributeNonNull
인수가 다음과 같은 함수에 인수로 전달된 널 포인터를 확인하십시오.
'nonnull' 속성으로 표시됩니다.

core.CallAndMessage
함수 호출 및 Objective-C 메시지 표현에 대한 논리적 오류를 확인하세요.
(예: 초기화되지 않은 인수, null 함수 포인터)

core.DivideZero
XNUMX으로 나누었는지 확인하세요.

core.NullDereference
널 포인터의 역참조를 확인하십시오.

core.StackAddressEscape
스택 메모리에 대한 주소가 함수를 벗어나지 않는지 확인하십시오.

core.UndefineBinaryOperatorResult
이진 연산자의 정의되지 않은 결과를 확인하세요.

코어.VLA크기
정의되지 않았거나 크기가 XNUMX인 VLA 선언을 확인하세요.

core.buildin.Builtin함수
컴파일러 내장 함수를 평가합니다. 예: 할당().

core.buildin.NoReturnFunctions
호출자에게 반환되지 않는 것으로 알려진 '패닉' 함수를 평가합니다.

core.uninitialized.ArraySubscript
배열 첨자로 사용되는 초기화되지 않은 값을 확인하세요.

코어.초기화되지 않음.할당
초기화되지 않은 값 할당을 확인하세요.

코어.초기화되지 않음.분기
분기 조건으로 사용된 초기화되지 않은 값을 확인합니다.

core.uninitialized.CapturedBlockVariable
초기화되지 않은 값을 캡처하는 블록을 확인하세요.

core.uninitialized.UndefReturn
호출자에게 반환되는 초기화되지 않은 값을 확인하세요.

데드코드.데드스토어
나중에 읽지 않는 변수에 저장된 값을 확인하십시오.

디버그.DumpCFG
제어 흐름 그래프를 표시합니다.

debug.DumpCallGraph
호출 그래프를 표시합니다.

debug.DumpDominators
주어진 제어 흐름 그래프에 대한 지배력 트리를 인쇄합니다.

debug.DumpLiveVars
실시간 변수 분석 결과를 인쇄합니다.

디버그.통계
분석기 통계로 경고를 내보냅니다.

debug.Taint테스트
오염된 기호를 이와 같이 표시하십시오.

디버그.ViewCFG
다음을 사용하여 제어 흐름 그래프 보기 그래프비즈.

debug.ViewCallGraph
다음을 사용하여 호출 그래프 보기 그래프비즈.

llvm.규칙
LLVM 코드베이스 규칙에 대한 코드를 확인하세요.

osx.API 다양한 Mac OS X API가 올바르게 사용되는지 확인합니다.

osx.AtomicCAS
통화 평가 OSAtomic 기능.

osx.SecKeychainAPI
Secure Keychain API가 올바르게 사용되는지 확인하세요.

osx.cocoa.AtSync
@synchronized에 대한 뮤텍스로 사용되는 null 포인터를 확인하세요.

osx.cocoa.ClassRelease
'retain', 'release' 또는 'autorelease'를 클래스에 직접 보내는지 확인하세요.

osx.cocoa.In CompatibleMethodTypes
유형 비호환성이 있는 Objective-C 메소드 서명에 대해 경고합니다.

osx.cocoa.NSAutoreleasePool
최적이 아닌 사용에 대해 경고 NSAutoreleasePool Objective-C GC 모드에서.

osx.cocoa.NS오류
NSError** 매개변수의 사용법을 확인하세요.

osx.cocoa.NilArg
Objective-C 메서드 호출에 금지된 nil 인수가 있는지 확인하세요.

osx.cocoa.RetainCount
누출 및 부적절한 참조 카운트 관리를 확인하십시오.

osx.cocoa.SelfInit
초기화 메서드 내에서 'self'가 제대로 초기화되었는지 확인하세요.

osx.cocoa.UnusedIvars
전혀 사용되지 않는 개인 ivar에 대해 경고합니다.

osx.cocoa.VariadicMethodTypes
Objective-C가 아닌 유형을 예상하는 가변 메소드에 전달하는지 확인하십시오.
오브젝티브-C 유형.

osx.coreFoundation.CFError
CFErrorRef* 매개변수의 사용을 확인하십시오.

osx.coreFoundation.CFNumber
올바른 사용법을 확인하세요. CF번호생성().

osx.coreFoundation.CFRetainRelease
null 인수가 있는지 확인하세요. CF유지(), CF릴리스(), 그리고 CFMake수집 가능().

osx.coreFoundation.containers.OutOfBounds
사용할 때 인덱스가 범위를 벗어났는지 확인합니다. CFArray API.

osx.coreFoundation.containers.PointerSizedValues
다음과 같은 경우 경고합니다. CFArray, CF사전CF세트 포인터 크기가 아닌 값으로 생성됩니다.

security.FloatLoopCounter
부동 소수점 값을 루프 카운터로 사용할 때 경고합니다(CERT: FLP30-C, FLP30-CPP).

security.insecureAPI.UncheckedReturn
반환 값을 항상 확인해야 하는 함수 사용에 대해 경고합니다.

security.insecureAPI.getpw
다음의 사용에 대해 경고합니다. getpw().

security.insecureAPI.gets
다음의 사용에 대해 경고합니다. 가져옵니다().

security.insecureAPI.mkstemp
경고 시기 mkstemp()는 형식 문자열에서 6개 미만의 X로 전달됩니다.

security.insecureAPI.mktemp
다음의 사용에 대해 경고합니다. mktemp().

security.insecureAPI.rand
다음의 사용에 대해 경고합니다. 랜드(), 닥치는대로의() 및 관련 기능.

security.insecureAPI.strcpy
다음의 사용에 대해 경고합니다. strcpy() 및 strcat().

security.insecureAPI.vfork
다음의 사용에 대해 경고합니다. vfork().

유닉스.API
다양한 UNIX/Posix 함수에 대한 호출을 확인하세요.

unix.Malloc
메모리 누수, double free, use-after-free를 확인하세요.

유닉스.cstring.BadSizeArg
일반적인 오류에 대해 C 문자열 함수에 전달된 크기 인수를 확인하세요.
패턴.

유닉스.cstring.NullArg
C 문자열 함수에 인수로 전달되는 널 포인터를 확인하십시오.


스캔 빌드 -o /tmp/myhtml디렉터리 확인 -j4

위의 예에서는 분석 보고서가
/tmp/myhtml디렉터리 그리고 달리기 위해 확인 와 더불어 -j4 옵션. 다른 하위 디렉터리가 생성됩니다.
때마다 스캔 빌드 프로젝트를 분석합니다. 분석기는 대부분의 병렬 빌드를 지원해야 합니다.
하지만 분산 빌드는 아닙니다.

작가


스캔 빌드 Ted Kremenek이 썼습니다. 문서 제공자:
제임스 K. 로우든[이메일 보호]>.

onworks.net 서비스를 사용하여 온라인으로 scan-build-3.8를 사용하세요.


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad