스플린트(프로그래밍 공구)

Splint (programming tool)
부목
개발자스플린트 개발자
안정적 해제
3.1.2 / 2007년 7월 12일; 14년(2007-07-12)
리포지토리github.com/splintchecker/splint
운영 체제크로스 플랫폼
유형정적 코드 분석
면허증GPL
웹사이트www.splint.org

SplintSecure Programming Lint의 줄임말로서 C 프로그램의 보안 취약성과 코딩 실수에 대해 정적으로 점검하기 위한 프로그래밍 툴이다.이전에는 LCLint라고 불렸으며, 현대판 Unix 보풀 툴이다.

스플린트는 소스 코드에 대한 특수 주석을 해석할 수 있는 능력이 있어 소스만 봐도 가능한 것보다 더 강한 체크가 가능하다.스플린트는 결점 제로 설계를 위한 노력의 일환으로 gpsd에 의해 사용된다.[1]

스플린트는 GNU General Public License의 조건에 따라 출시된 무료 소프트웨어다.

스플린트에 대한 주요 개발 활동은 2010년에 중단되었다.SourceForgeCVS에 따르면, 2012년 9월 현재 저장소의 가장 최근의 변화는 2010년 11월이었다.[2]GitHubGit 저장소는 2019년 7월부터 더욱 최근의 변화를 가지고 있다.[3]

#include <stdio.h> 인트로 본래의() {     마를 뜨다 c;     하는 동안에 (c != 'x');     {         c = 당기다();         만일 (c = 'x')             돌아오다 0;         바꾸다 (c) {         케이스 '\n':         케이스 '\r':             활자화하다("뉴라인\n");         체납:             활자화하다("%c",c);         }     }     돌아오다 0; } 

스플린트의 출력:

정의 전에 사용된 변수 c 무한 루프 의심.루프 테스트(c)에 사용된 값은 테스트 또는 루프 본체에 의해 수정되지 않는다.char에 대한 int 할당: c = getchar() if가 할당 식인 경우 테스트 식: c = 'x' 부울이 아닌 경우 테스트 식, 유형 char: c = 'x' Fall through case(이전 중단 없음)

고정 소스:

#include <stdio.h> 인트로 본래의() {     인트로 c = 0;  // 초기 할당 정의가 추가됨.      하는 동안에 (c != 'x') {         c = 당기다();  // c to int에 대한 보정 유형         만일 (c == 'x') // 비교 연산자로 만들기 위해 할당 오류를 수정.             돌아오다 0;         바꾸다 (c) {         케이스 '\n':         케이스 '\r':             활자화하다("뉴라인\n");             부숴뜨리다;  // fall-through를 방지하기 위해 브레이크 문 추가.         체납:             활자화하다("%c",c);             부숴뜨리다;  //좋은 관행에서 벗어나 기본 캐치에 브레이크 문 추가.         }     }     돌아오다 0; } 

참고 항목

참조

  1. ^ Raymond (2012). Brown, Amy; Wison, Greg (eds.). The Architecture of Open Source Applications, Volume II (Eric ed.). Lulu. ISBN 9781105571817.
  2. ^ "Splint project CVS statistics". Retrieved 2012-09-11.
  3. ^ "Splint project git history". Retrieved 2020-09-16.

외부 링크