본문 바로가기
개발/Visual C++

Visual Studio 2005/2008 Team System 아닌 에디션에서 코드 분석

by belitino 2012. 12. 20.

출처: http://nsjokt.springnote.com/pages/2547456.xhtml

http://blog.naver.com/jacking75/140048081142

http://webcache.googleusercontent.com/search?q=cache:ltS8HzF3S7YJ:nsjokt.springnote.com/pages/2547456.xhtml+&cd=2&hl=ko&ct=clnk&gl=kr

 

원래는 상기 출처에 있던 글인데 요즘 다시 참고하려고 하니 Springnote는 서비스 종료되어 페이지 접근이 안되고 네이버 블로그는 포스트를 비공개로 막아두셔서 볼 수가 없네요. 그래서 고민하던 차에 구글에 저장된 페이지 기능을 사용해서 간신히 원문을 볼 수가 있었습니다. 혹시나 저장된 페이지마저 없어질까봐 여기에 복사본을 남깁니다.


원문 : http://blog.naver.com/jacking75/140048081142

회사에서 다른 사람이 만든 코드를 고쳐야 하는 일이 발생해서 징징거리던 중, Visual Studio Team System을 쓰시는 분이 Team System에서는 코드 분석(Code Analysis) 기능이 있다는 것을 알려주셔서 알아봤습니다.

MSDN, Visual Studio Team System :: C/C++ 코드 오류 검색 및 수정
MSDN, Visual Studio Team System :: Code Analysis for C/C++ Warnings

간단하게 요약하자면, 코드를 분석하여 자칫 잘못 사용할 가능성이 보이는 부분을 알려주는 기능이랄까요…
대충 기억나는 것을 적어보자면…

  1. 변수의 유효영역 검사 (variable scope)
  2. buffer underrun
  3. printf 함수와 같은 가변형 인자를 가지는 함수의 인자 개수 체크
  4. 배열 참조 검사


이러한 사항들을 검사하여 문제가 발생할 수 있는 부분을 warning 처리하여 알려줍니다.

하지만, 이 기능은 Team System만 사용할 수 있습니다.
집이나 회사에서 Visual Studio Professional Edition만 쓰는 저로서는 조금 아픈 조건이랄까요… orz


WTL처럼 뭔가 이 기능을 사용할 꼼수가 없을까 해서 알아본 결과…


Michael Suodenjoki's Blog :: Analyze This

Michael Suodenjoki's Blog :: Hey, cl.exe /analyze disappeared!

이런 포스팅을 발견했습니다. ;ㅁ;

그래서 저 포스팅을 참조하여 제 나름대로 삽질을 해 본 결과…

◎ Visual C++ 2005

  1. Microsoft :: Windows Software Development Kit for Windows Vista and .NET Framework 3.0 Runtime Components 를 받아서 설치하여 사용하면 됩니다.
  2. Visual Studio를 실행하여 Tools - Option - VC++ Directories - Executable Files에 가셔서 (SDK 설치 경로, 보통 Microsoft SDKs)\Windows\v6.0\bin을 추가해주시면 됩니다.


◎ Visual C++ 2008

  1. Microsoft :: Windows SDK for Windows Server 2008 and .NET Framework 3.5 를 받아서 설치하여 사용하면 됩니다. 하지만, SDK를 설치하지 않고도 사용하는 방법이 있는데, 이미지 안에 있는 Setup\vc_stdx86.msi(64비트 컴파일러가 필요할 경우 Setup\vc_stdamd64.msi) 파일을 실행하여 컴파일러만 설치합니다. Visual Studio의 컴파일러를 직접 덮어쓰는 형식이기 때문에 따로 더 만져줄 부분이 없습니다.


이걸로 끝입니다! 실제 적용은 이렇게 해주시면 되겠습니다.




참 쉽죠?


다른 단점 하나를 꼽자면… 바로 컴파일 시간이 평소보다 조금 더 오래 걸린다는 점입니다.

하지만, 1주일에 1번 정도 이 기능을 사용하여 빌드(Weekly Build)하는 정도라면 별문제가 없을 것 같습니다. :)