1. 코드 분석을 지원하지 않는 VS 버전에서 사용하기

VS2010의 경우는 프리미엄 버전부터 코드 분석기능을 사용할 수 있습니다(참고로 VS2010부터는 가장 아래가 프로페셔널 버전입니다).

VS2008, VS2005 Standard, Pro, Teamsuit 버전으로 나누어지는데 이중 Teamsuit 버전만 코드 분석 기능을 사용할 수 있습니다. Teamsuit의 경우 보통 TFS를 사용하는 경우 사용하는 버전으로 Pro에 비해서 엄청나게 비쌉니다. 그래서 VS2008, 2005를 사용하시는 분들은 코드 분석 기능을 사용하지 못하는 경우가 대다수라고 생각합니다.

 

그러나 VS 2008, 2005를 사용하는 분이라면 약간의 수고를 들이면 코드 분석 기능을 사용할 수 있습니다. 사용 방법은 http://gpgstudy.com/forum/viewtopic.php?topic=22115 를 참고 하시기 바랍니다. ( GPGStudy에 있는 링크는 깨어져 있습니다. 그래서 http://nsjokt.springnote.com/pages/2547456 를 보시기 바랍니다)

VS2010도 비슷한 방법으로 하면 될 것 같은데 해보지 않아서 알 수가 없습니다.



2. DataTip

DataTip은 디버깅을 할 때 도움일 될만한 것을 메모를 남길 수 있습니다. 위치 이동도 자유롭게 할 수 있습니다.


메모는 디버깅을 할 때만 보이므로 코딩할 때 전혀 불편을 주지 않습니다.

그리고 그림의 빨간 사각형에 표시된 형태일 때는 DataTip이 삽입 되어 있다는 것을 표시해줍니다.

삽입 표시가 남는 경우는 디버깅이 끝난 이후 표시 부분에 마우스 포인터를 가져가면 디버깅 때 남겨 놓았던 메모를 볼 수 있고 또 앞선 디버깅에서 어떤 값이 저장되었는지 표시해 줍니다.


위 그림의 빨간 사각형 그림처럼 되면 DataTip이 표시 되었다는 것이 디버깅을 하지 않을 때는 표시 되지 않습니다.




by 흥배 2010. 9. 17. 09:00
  • 학습중 2010.09.17 12:06 ADDR EDIT/DEL REPLY

    2005, 2008에서 사용하는 법 gpgstudy 링크 따라가니
    내용이 많다며 블로그 링크가 있는데
    해당 링크가 깨져있네요 ;

    • 흥배 2010.09.17 19:03 신고 EDIT/DEL

      그렇네요. 대신 여기 글을 보세요. http://nsjokt.springnote.com/pages/2547456


KGC10 - Visual C++10과 디버깅
View more presentations from jacking.



오늘 101호실에서 5시에 강연을 했습니다. 그런데 강연을 매끄럽게 하지 못해서 참석하신 분들에게 죄송스럽네요. 대부분 Demo 위주로 할 예정이라고 너무 쉽게 생각하고 연습을 제대로 하지 않아서 시간 관리도 제대로 못했고 말 연결도 매끄럽지 못했습니다. 반성하겠습니다.

 

오늘 제대로 못한 부분은 너무 뒷북 치는 것 같지만 블로그를 통해서 전달하도록 하겠습니다. 다음에는 연습 많이 하겠습니다. 그리고 주제도 좀 더 흥미로운 것으로 하겠습니다. 이번 강연은 내용이 많이 평이했던 것 같네요. 오히려 회사에서 사용하고 있는 유닛테스트나 자동테스트, 덤프 파일 관리 등을 이야기 하는 것이 더 좋았지 않았을까 생각합니다.

 

앞서 이야기 했듯이 오늘 다 못한 이야기는 블로그를 통해서 꼭 전달하겠습니다.


오늘 강연에서 사용했던 Demo 소스 파일도 첨부합니다. 참고로 Demo_08이 google-breakpad를 사용한 프로젝트인데 Demo_08를 빌드하기 위해서는 google-breakpad를 설치후 Demo_08의 솔루션 속성 정보에서 헤더파일과 라이브러리 설정을 수정해야합니다.



[ PT 문서의 오타 ]

문서는 컴파일이나 디버깅 할 수 없어서 버그를 잡지 못했습니다. -_-;;

1. strcpy같은 보안성이 약한 함수를 매크로로 일괄적으로 보안성 높은 함수로 바꾸어주는 매크로의 이름에 오타가 있습니다.

_CRT_SECURE_CPP_OVERLOAD_STANDAD_NAMES    (X)

_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES  (0)

그리고 이 매크로는 동적버퍼의 경우는 위험할 수가 있다고 하네요. 관련 MSDN 글이 한글은 없으니 제가 조만간 따로 번역해서 올리겠습니다.

by 흥배 2010. 9. 15. 23:26
  • audience 2010.09.16 04:16 ADDR EDIT/DEL REPLY

    강연 들었던 학생인데요.

    기본적인 기능이거나 현업에서 많이 쓰는 라이브러리나 툴일지라도
    학생이다 보니 학교에서는 디버깅을 누가 알려주지 않더라구요.

    그래서 어쩌다보니 개발툴에서 디버깅하는 것 보다
    windbg같은 디버깅툴에서 디버깅하는 것을 먼저 알게되는 바람에
    개발툴에서의 디버깅을 알고 싶어서 갔었습니다.

    그래서 가장 기본적인 F5, F9, F11.. 등 도 알려주고 넘어가시고
    데모 위주로 알려주셔서 좋았습니다.

    아쉬웠던 점은 시간관계상 그리고 데모 시연이 원활하지 못했던 부분 때문에
    후반에는 데모 시연 없이 대강대강 넘어가실 때
    상당히 유용해 보이는 기능이나 라이브러리 같은 것들이 보였는데
    그것을 제대로 볼 수 없어서 아쉬웠습니다.

    꼭 이 블로그나 vsts2010.net 에서 자세히 다루어 주셨으면 좋겠습니다.

    마지막으로 강연과는 관련 없는 건데
    Visual C++ 10과 C++0x 이 책자
    pdf 파일로 보았는데
    KGC에 있던 MS부스에서 나눠주시더군요.
    KGC에서 받아온 기념품 중에 제일 좋네요. ㅋㅋ

    • 흥배 2010.09.16 18:54 신고 EDIT/DEL

      미숙한 강연이었는데 좋게 봐주셔서 고맙습니다. 뒷 부분에 날림으로 넘어간 부분은 블로그를 통해서 꼭 보강하겠습니다.!!

  • 아햐햐 2010.09.16 15:18 ADDR EDIT/DEL REPLY

    감사합니다. ^^ 잘보겠습니다.

    _CRT_SECURE_CPP_OVERLOAD_STANDAD_NAMES 에서

    STANDAD 오타인가요?

  • 2010.09.16 15:34 ADDR EDIT/DEL REPLY

    비밀댓글입니다



위와 같이 디버깅 할 때 포인터 배열 p을 내용을 보고 싶을 때 Watch window Quickwatch window를 통해서 p를 보면 배열의 첫 번째 값만 보입니다.

 


1. p의 모든 값을 보고 싶을 때는 ‘변수, 배열 크기’Watch window에 입력합니다.

 

 

 

 

2. 특정 위치의 값만 보고 싶다면 '(변수 + 인덱스)'

 

 


 

Visual C++ 6 ~ 10까지 다 가능합니다.


출처 : http://support.microsoft.com/?scid=kb%3Ben-us%3B198953&x=8&y=16

 

by 흥배 2010. 2. 11. 08:30
  • 꼬미 2010.02.11 11:13 ADDR EDIT/DEL REPLY

    항상 트레이스문으로 다 출력하게 했었는데, 이게 훨씬 나아보이네요~ +_+
    좋은 정보 감사합니다~

  • 물만두 2010.09.20 02:48 ADDR EDIT/DEL REPLY

    과제 때문에 밤새는 중인데..ㅠㅠ
    매우 유용한 정보를 얻게 되어 감사합니다!

  • 푸지 2016.04.05 02:53 ADDR EDIT/DEL REPLY

    정말 좋은 정보를 얻어갑니다. 감사합니다.

| 1 |