스플린트(프로그래밍 공구)
Splint (programming tool)개발자 | 스플린트 개발자 |
---|---|
안정적 해제 | 3.1.2 / 2007년 7월 12일; 전 |
리포지토리 | github |
운영 체제 | 크로스 플랫폼 |
유형 | 정적 코드 분석 |
면허증 | GPL |
웹사이트 | www |
Splint는 Secure Programming Lint의 줄임말로서 C 프로그램의 보안 취약성과 코딩 실수에 대해 정적으로 점검하기 위한 프로그래밍 툴이다.이전에는 LCLint라고 불렸으며, 현대판 Unix 보풀 툴이다.
스플린트는 소스 코드에 대한 특수 주석을 해석할 수 있는 능력이 있어 소스만 봐도 가능한 것보다 더 강한 체크가 가능하다.스플린트는 결점 제로 설계를 위한 노력의 일환으로 gpsd에 의해 사용된다.[1]
스플린트는 GNU General Public License의 조건에 따라 출시된 무료 소프트웨어다.
스플린트에 대한 주요 개발 활동은 2010년에 중단되었다.SourceForge의 CVS에 따르면, 2012년 9월 현재 저장소의 가장 최근의 변화는 2010년 11월이었다.[2]GitHub의 Git 저장소는 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; }
참고 항목
참조
- ^ Raymond (2012). Brown, Amy; Wison, Greg (eds.). The Architecture of Open Source Applications, Volume II (Eric ed.). Lulu. ISBN 9781105571817.
- ^ "Splint project CVS statistics". Retrieved 2012-09-11.
- ^ "Splint project git history". Retrieved 2020-09-16.
외부 링크