Visual C++ 10과 디버깅마이에트 엔터테인먼트 건즈팀서버 프로그래머최흥배MS Visual C++ MVPTwitter : @jacking75
VS2010 스터디 팀 멤버로 활동 중 http://vsts2010.net
신입 프로그래머일 때 일정을 지키지 못하는 이유?디버깅
디버깅 시간 단축하기 위한 방법
디버깅 시간 단축하기 위한 방법
디버깅 시간 단축하기 위한 방법
디버깅 시간 단축하기 위한 방법
디버깅 시간 단축하기 위한 방법
Visual C++10
Visual C++ 10VC++ 디버깅의 기초 F9 – 브레이크 포인트 설정 / 해제
 F5 – 디버깅 시작
 F10 – Step Over
 F11 – Step InVisual C++ 10함수에 브레이크 포인터 빠르게 설정하기 단축키 Ctrl + BVisual C++ 10다음에 실행될 문 변경
Visual C++ 10포인터 배열의 내용을 보고 싶을 때
Visual C++ 10프로그램 실행 도중 변수 값 변경
다음에 실행될 문 변경DEMO
포인터 배열의 내용을 보고 싶을 때DEMO
프로그램 실행 도중 변수 값 변경DEMO
Visual C++ 10중단점 조건
Visual C++ 10적중 횟수
중단점 조건, 적중 횟수DEMO
Visual C++ 10중단점 필터
Visual C++ 10중단점이 적중될 때
중단점이 적중될 때DEMO
Visual C++ 10레이블 그룹화로 브레이크 포인트 on/off도 가능레이블DEMO
Visual C++ 10프로세스에 연결
프로세스에 연결DEMO
Visual C++ 10조사 식, 직접 실행
조사 식, 직접 실행DEMO
Visual C++ 10중단점 내보내기/가져오기
Visual C++ 10DataTips
중단점 내보내기/가져오기, DataTipsDEMO
Visual C++ 10병렬 프로그래밍 디버깅
병렬 프로그래밍 디버깅DEMO
Visual C++ 10안전한 함수 호출void func(char *p) {    char d[20];strcpy(d,p);    // 기타}안전하지 않은 코드#define _CRT_SECURE_CPP_OVERLOAD_STANDAD_NAMES 1 void func(char *p) {    char d[20];strcpy_s(d, __countof(d), p);    // 기타}안전한 코드
Visual C++ 10VS의 코드분석 정적 분석 툴
 컴파일 타임 시에 버그가 발생할 코드를 경고VS의 코드분석 – 버퍼 침범 찾기DEMO
유틸리티
Microsoft Configuration Capture(MPS_REPORTS)버그가 발생한 Windows의 OS 버전서비스 팩 버전인스톨된 애플리케이션, 패치 머신의스펙 정보(이것은 시간 몇분 걸린다)등의 정보를 모은다. Windows Me나 98 이전은 지원하지 않는다.http://support.microsoft.com/?scid=kb%3Bko%3B818742&x=12&y=16
Microsoft Configuration Capture(MPS_REPORTS)DEMO
Problem Steps Recorder애플리케이션에 문제가 발생했을 때의 조작 스크린 샷이나 주석을 기록하여 레포트를 만들어주는 툴.Window 7, Windows Server 2008 R2에 기본 내장
Problem Steps RecorderDEMO
애플리케이션 베리파이어프로그램의 Heaps, Handles, Locks, Memory 등의 문제를 발견하여 보고GUI 모드 및 커맨드 모드로 실행 가능상세한 설명‘실전 윈도우 디버깅’(정보문화사). p9, p747갱주니님블로그http://process3.blog.me/20050862664다운로드http://www.microsoft.com/downloads/details.aspx?FamilyID=c4a25ab9-649d-4a1b-b4a7-c9d8b095df18&displayLang=en
Visual Leak Detector(VLD) - 메모리 누수 추적 메모리 누스를 추적 해 주는 라이브러리
 VC++ 6에서 VC++ 10까지 대부분의 VC++ 지원
사이트, 다운로드 http://vld.codeplex.com/
간단 설명http://blog.naver.com/snaphacker/50035487803Debug Diagnostic Tool 덤프를 풀 덤프로 (마우스)오른쪽 버튼 클릭 한방으로 만들 수 있다(WinDbg로도 가능하지만 훨씬 간단)
 복수 개의 덤프를 대상으로 행인지 아닌지 분석해 준다
크래쉬한 덤프도 분석해 준다.
 다운로드 http://www.microsoft.com/downloads/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&displaylang=engoogle-breakpad Google이 만든 오픈소스로 멀티 플랫폼에서 사용할 수 있는 크래쉬리포팅 시스템
 애플리케이션에 문제가 발생하면(크래쉬) 크래쉬 덤프를 생성하고, 크래쉬 덤프랑 애플리케이션 로그를 서버에 전송
 Firefox에서 사용 중
사이트http://code.google.com/p/google-breakpad/google-breakpad– VC++10에서 사용하기공식 사이트에서 svn을 통해 소스를 다운로드빌드 하기- 멀티 플랫폼 빌드를 위해 breakpad는 gyp 라는 것을 사용- gyp를 사용하기 위해서 python이 필수. 꼭 2.x대 버전만 사용해야 된다- breakpad를 ‘E:\Projects\google-breakpad’에 설치했다고 가정- 콘솔 창에서 ‘E:\Projects\google-breakpad\src\tools\gyp’로 이동- 위와 같이 입력한다- ‘E:\Projects\google-breakpad\src\client\windows’ Visual Studio 솔루션 파일이 생성된다.- ‘breakpad_client.sln’ 파일을 열어서 빌드,lib 파일을 만든다.
google-breakpad– VC++10에서 사용하기VS  프로젝트에 헤더 파일 및 lib 파일 등록
google-breakpad– Visual C++10에서 빌드 실패 해결1. gtest실패Google의 UnitTest프레임워크인 gtest는 Visual C++ 10을 지원하지 않고 있다gtest빌드가 필수는 아니므로 빌드 실패를 무시해도 된다.꼭 빌드를 하고 싶다면 여기를 참고 http://jacking.tistory.com/572

KGC10 - Visual C++10과 디버깅