27
Debugging with Visual Studio Lusain Kim

Debugging with Visual Studio

Embed Size (px)

Citation preview

Page 1: Debugging with Visual Studio

Debugging with Visual Studio

Lusain Kim

Page 2: Debugging with Visual Studio

IND

EX

|

Introduce : Visual Studio의 Debugging 도구들

중단점

호출 스택

조사식

중단 중 실행

Tips : 코드 작성 시 참고 사항

경고

코드 분석

Advanced Feature : Profiling

프로파일링

DirectX : Graphic Debugging

그래픽 디버깅

Page 3: Debugging with Visual Studio

들어가기 앞서

bug : 프로그램 실행(runtime) 중 예기치 않은 오류가 발생한 상황

debug : 버그를 잡는 작업

compile-error : 프로그램을 컴파일 할 때 문법 오류 등의 이유로 실패하는 경우

= bug가 아님

runtime-error : 버그 등의 이유로 프로그램 실행 중 문제가 발생한 경우

bug 맞음

Page 4: Debugging with Visual Studio

이 자료는 Visual Studio 2017을 기준으로 합니다

Page 5: Debugging with Visual Studio

Introduce:

Visual Studio의 Debugging 도구들

Page 6: Debugging with Visual Studio

중단점(F9)

빨간 원 형태로 시각화. 해당 위치를 클릭하여 설정/해제 가능

오른쪽 스크롤 바에 갈색(기본 색)으로 표시

디버깅(F5) 중 중단점이 찍힌 위치에서 중단

중단점에 의한 중단은 별도의 조작이 없을 경우 해당 줄 직전까지 실행된 상태

6

Page 7: Debugging with Visual Studio

중단점 설정

중단점 위에 커서를 올리면 팝업

중단점 설정과 중단점 활성/비활성화 가능

중단점 설정

조건

특정 조건에만 중단점이 적중하도록 설정 가능

작업

해당 중단점이 걸리면 오류 메시지를 출력창에띄울지 설정 가능

계속 실행 : 중단하지 않음

7

Page 8: Debugging with Visual Studio

중단점 창(디버그(D) > 창(W) > 중단점(B))

중단점 일괄 관리가 가능

기능

중단점 새로 만들기

비활성화

중단점 삭제

중단 조건 입력

8

Page 9: Debugging with Visual Studio

호출 스택 (디버그(D) > 창(W) > 호출 스택(C))

디버깅(F5) 중에만 확인 가능

현재 중단된 위치가 어떤 경로로 도달했는지 표시

스택을 더블 클릭하여 해당 스택의 중단 위치로 이동 가능

9

Page 10: Debugging with Visual Studio

조사식 창(디버그(D) > 창(W) > 자동(A) / 지역(L) / 조사식(W, 1~4))

디버깅(F5) 중에만 확인 가능

중단 중인 위치에 최적화되지 않은 개체의 값을 조회 가능

종류

자동 | 적절히 조회가 필요할 것 같은 값들을 알아서 잘 표시

로컬 | 현재 범위의 지역 변수를 표시

조사식 | 원하는 값을 이름 필드에 입력하여 값 확인 가능| 조사식 창은 4 까지 존재

10

Page 11: Debugging with Visual Studio

다음 문 표시

중단 중 한 단계씩 코드 실행, 프로시저 단위 실행, 프로시저 나가기 기능 제공

종류

Alt ▷ NumPad * 다음 문 표시

F11 한 단계씩 코드 실행

F10 프로시저 단위 실행

Shift ▷ F11 프로시저 나가기

• Ctrl ▷ F10 (코드 편집 중에) 캐럿이 위치한 줄까지 디버깅 후 중단

Visual Studio 2015부터 중단 중 다음 중단까지 경과 시간 표시

11

Page 12: Debugging with Visual Studio

Tips:

코드 작성 시 참고 사항

Page 13: Debugging with Visual Studio

경고

솔루션 탐색기 > 프로젝트 속성 > 구성 속성 > C/C++ > 일반 > 경고 수준

각 경고 수준은 다음과 동일

가능한 한 W4로 프로그래밍 권장

13

Page 14: Debugging with Visual Studio

코드 분석(분석(N) > 코드 분석 실행(R))

정의된 코딩 가이드에 따라 코드 분석 기능 제공

솔루션 속성 > 공용 속성 > 코드 분석 설정

시나리오 기능을 통해 발생할 수 있는 버그 설명

Visual Studio 2017 에서는 모두 다시 빌드로 동작

오류 목록에서 세부 정보 확인 가능

14

Page 15: Debugging with Visual Studio

Advanced Features:

프로파일링을 통한 프로그램 최적화

Page 16: Debugging with Visual Studio

프로파일링 : 진단 도구

Visual Studio 2015부터 도입

디버깅 중 메모리와 CPU 사용량을 시간별로 기록

필터링, 힙 프로파일링(힙 메모리 사용량 시간별 기록) 제공

힙 프로파일링 사용 시 스냅숏 기능으로 특정 시간의 메모리 사용량 기록 가능

메모리 누수나 병목 현상이 일어나는 지점 유추 가능

자세한 내용은 MSDN 참고 | https://goo.gl/yca6wB

16

Page 17: Debugging with Visual Studio

프로파일링(분석(N) > 성능 프로파일러(F) | Alt + F2)

디버깅의 꽃

목적에 따라 다음 기능 제공

CPU 사용량

메모리 사용량

GPU 사용 현황

성능 마법사

원하는 도구를 선택하고 [시작]하여 프로파일링 시작

17

Page 18: Debugging with Visual Studio

프로파일링(분석(N) > 성능 프로파일러(F) | Alt + F2)

실행을 종료하여 프로파일링 완료

완료 후 보고서를 통해프로그램 병목, 메모리 누수 등을 검사

18

Page 19: Debugging with Visual Studio

프로파일링(분석(N) > 성능 프로파일러(F) | Alt + F2)

사용 예 : 성능 병목을 검사하기 위해실행 부하 과다 경로를 검사

1. 실행 부하 과다 경로에 있는조사하고 싶은 경로를 더블 클릭

2. 시각화 된 실행 부하 비율을 보고최적화 모색

왼쪽 호출 함수를 클릭하여상위 스택으로 이동 가능

오른쪽 호출된 함수를 클릭하여하위 스택으로 이동 가능

19

Page 20: Debugging with Visual Studio

For DirectX Developer:

그래픽 디버깅

Page 21: Debugging with Visual Studio

그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))

DirectX 등 3D 그래픽 프로그래밍에서고급 그래픽 기술을 사용할 때 도움을 주는 디버거

Visual Studio 2015에서는 기본 설치

Visual Studio 2017에서는 설치 옵션에서 다음 항목 체크

Visual Studio Installer > 게임 개발 도구 모음 > DirectX용 그래픽 디버거 및 GPU 프로파일러

단축키 | Alt + F5

21

Page 22: Debugging with Visual Studio

그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))

디버깅을 원하는 장면에서

1. 키보드 : Print Screen 버튼

2. 디버깅 창 : 프레임 캡처

단축키 | Alt + F5

22

Page 23: Debugging with Visual Studio

그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))

이 장면이 그려지는 모든 이벤트가 기록되어이벤트 목록에 표시

이벤트 목록에 있는 항목을 클릭하여해당 이벤트가 발생했을 때까지완료된 정보 확인 가능

단축키 | Alt + F5

23

Page 24: Debugging with Visual Studio

그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))

각 파이프라인 단계 확인 가능

연결된 리소스 확인 가능

텍스처 또는 렌더 타겟이라면 텍스처 확인 가능

단축키 | Alt + F5

24

Page 25: Debugging with Visual Studio

그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))

결과 화면을 클릭하여 픽셀 기록 확인 가능

단축키 | Alt + F5

25

Page 26: Debugging with Visual Studio

그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))

랜더링 중간 과정 최종 결과

단축키 | Alt + F5

26

Page 27: Debugging with Visual Studio

Thank You