오픈소스 C++ 코드 정적 분석툴 cppcheck
2010/07/28 18:26 |
Softwares
나는 디바이스 드라이버를 개발할 때, 마이크로소프트의 Prefast for drivers 를 몹시 애용한다.
내가 미처 생각하지 못했던 실수들을 잘 발견해서 가르쳐주기 때문에, 나는 코딩할 때는 항상 경고레벨을 최고로 둠과 동시에 빌드시마다 Prefast 를 자동으로 실행시켜서 경고가 발생했는지 확인하고는 한다.
이렇게 함으로써 버그를 잡을 수 있을 뿐 아니라 코드를 조금 더 정교하고 튼튼하게 만들수 있고 여러 좋은 습관들까지 몸에 배이도록 할 수있다.
이것은 거의 공짜로 주워먹는 큰 이득이기 때문에, 쓸만한 정적 분석툴을 가지고 있다면 무조건 적용시키는 것이 좋다.
나는 Prefast를 유저모드에서도 사용할 수 없을까 찾아보다가 해결책을 찾지 못하고 cppcheck라는 다른 툴을 알아보게 되었다.
cppcheck는 멀티 플랫폼에서 사용할 수 있도록 만들어졌고 오픈소스이며, 분석 능력도 그럭저럭 만족스럽다.
어떤 것들을 분석해주는지는 웹사이트에 잘 나와있으며, 안 읽어보더라도 조금 쓰다보면 금방 알게된다.
GUI 버전으로 실행할 수도 있고, 콘솔 프로그램만으로도 결과를 얻을 수 있는데 나는 Visual Studio의 External Tools 기능을 이용해서 콘솔 프로그램만을 구동시킨다.
위 처럼 적어넣으면 내가 원할 때마다 한번씩 쉽게 분석 작업을 수행할 수 있다.
빌드 후 이벤트에 넣어서 매 빌드마다 실행되게 할 수도 있지만, 모든 프로젝트에 각각 적용시키려면 귀찮은 짓을 많이 해야한다.
External Tools 는 전역 기능이기 때문에 한번만 적어놓으면 가지고 있는 모든 VC 프로젝트에서 바로 사용이 가능하다.
나는 비주얼 스튜디오 아웃풋 윈도우로 출력을 돌리도록 설정하고 사용하는데, 이렇게 할 때는 --template vs 옵션을 주는 것이 좋다.
이 옵션을 넣으면 더블클릭을 통해 해당 소스 코드 위치로 바로 이동할 수 있도록 메세지를 다시 포맷팅 해서 출력해준다.
정말 쓸데없는 경고는 disable 시켜야 하는데, 편리하고 정교하게 disable 시킬수 있는 인터페이스가 아직 없다. 이런 것들은 앞으로 더 개선될 것으로 기대한다.
기존에 이런 종류의 컴파일러 경고들에 무심했었다면, 미친듯이 쏟아지는 경고메세지를 보고는 바로 이 짓을 때려칠지도 모르겠다.
"도대체 누가 경고레벨을 최대로 올리고 코딩을 해?"
"이런 경고 메세지들은 다 쓸데없는 것들이야. 코딩 잘하는데는 도움이 하나도 안돼"
이런 썩어빠진 마음가짐은 빨리 버려야 한다.
자신이 짠 코드에서 경고가 우르르 쏟아져나온다면 분명히 문제가 있는 것이다.
공짜로 얻을 수 있는 이득을 좋아한다면 한번씩 시도해보자.
'Softwares' 카테고리의 다른 글
| SyntaxHighlighter 3.0.83 (0) | 2010/08/07 |
|---|---|
| 크롬의 vimium과 비주얼스튜디오의 vsvim (0) | 2010/08/04 |
| 오픈소스 C++ 코드 정적 분석툴 cppcheck (6) | 2010/07/28 |
| stackoverflow.com -최고의 프로그래밍 질문/답변 사이트 (4) | 2010/03/18 |
| aMule, 리눅스에서 쓸 수 있는 당나귀 클라이언트 (3) | 2009/11/01 |
| lightSMS, 파이어폭스에서 무료문자 쉽게 보내기 (3) | 2009/09/23 |






와우 끝내주는군요. 잘 보고갑니다 ㅎㅎ
Reply감사합니다.
저도 Warning 레벨 4에 경고를 에러로 처리하도록 해놓고 하곤 하는데요.
Reply에러 메시지에 당황하는 분들도 계시더군요.
아직까지 정적코드분석툴은 안써봤었는데 이제 써봐야 겠습니다.
네, 경고를 에러로 처리하고 계신다면 정적분석툴도 틀림없이 좋아하실꺼에요. Visual Studio Team Suite 이상 버전 부터는 정적분석기가 내장되어있습니다.
자바 소스 분석툴 찾다 보니 구글에 낯익은 이곳까지 오게 되네요 ㅋㅋ 올때마다 홈페이지 UI가 계속바뀌네요?? 잘 보고 가요~~
Reply그래 재상아. 검색해서 오지 말고 종종 놀러와. 크크^^
영신이 회사 얼마전에 서울대입구로 옮겼더라. 같이 또 저녁밥이나 먹자구.