debugging with visual studio
TRANSCRIPT
Debugging with Visual Studio
Lusain Kim
IND
EX
|
목
차
Introduce : Visual Studio의 Debugging 도구들
중단점
호출 스택
조사식
중단 중 실행
Tips : 코드 작성 시 참고 사항
경고
코드 분석
Advanced Feature : Profiling
프로파일링
DirectX : Graphic Debugging
그래픽 디버깅
들어가기 앞서
bug : 프로그램 실행(runtime) 중 예기치 않은 오류가 발생한 상황
debug : 버그를 잡는 작업
compile-error : 프로그램을 컴파일 할 때 문법 오류 등의 이유로 실패하는 경우
= bug가 아님
runtime-error : 버그 등의 이유로 프로그램 실행 중 문제가 발생한 경우
bug 맞음
이 자료는 Visual Studio 2017을 기준으로 합니다
Introduce:
Visual Studio의 Debugging 도구들
중단점(F9)
빨간 원 형태로 시각화. 해당 위치를 클릭하여 설정/해제 가능
오른쪽 스크롤 바에 갈색(기본 색)으로 표시
디버깅(F5) 중 중단점이 찍힌 위치에서 중단
중단점에 의한 중단은 별도의 조작이 없을 경우 해당 줄 직전까지 실행된 상태
6
중단점 설정
중단점 위에 커서를 올리면 팝업
중단점 설정과 중단점 활성/비활성화 가능
중단점 설정
조건
특정 조건에만 중단점이 적중하도록 설정 가능
작업
해당 중단점이 걸리면 오류 메시지를 출력창에띄울지 설정 가능
계속 실행 : 중단하지 않음
7
중단점 창(디버그(D) > 창(W) > 중단점(B))
중단점 일괄 관리가 가능
기능
중단점 새로 만들기
비활성화
중단점 삭제
중단 조건 입력
8
호출 스택 (디버그(D) > 창(W) > 호출 스택(C))
디버깅(F5) 중에만 확인 가능
현재 중단된 위치가 어떤 경로로 도달했는지 표시
스택을 더블 클릭하여 해당 스택의 중단 위치로 이동 가능
9
조사식 창(디버그(D) > 창(W) > 자동(A) / 지역(L) / 조사식(W, 1~4))
디버깅(F5) 중에만 확인 가능
중단 중인 위치에 최적화되지 않은 개체의 값을 조회 가능
종류
자동 | 적절히 조회가 필요할 것 같은 값들을 알아서 잘 표시
로컬 | 현재 범위의 지역 변수를 표시
조사식 | 원하는 값을 이름 필드에 입력하여 값 확인 가능| 조사식 창은 4 까지 존재
10
다음 문 표시
중단 중 한 단계씩 코드 실행, 프로시저 단위 실행, 프로시저 나가기 기능 제공
종류
Alt ▷ NumPad * 다음 문 표시
F11 한 단계씩 코드 실행
F10 프로시저 단위 실행
Shift ▷ F11 프로시저 나가기
• Ctrl ▷ F10 (코드 편집 중에) 캐럿이 위치한 줄까지 디버깅 후 중단
Visual Studio 2015부터 중단 중 다음 중단까지 경과 시간 표시
11
Tips:
코드 작성 시 참고 사항
경고
솔루션 탐색기 > 프로젝트 속성 > 구성 속성 > C/C++ > 일반 > 경고 수준
각 경고 수준은 다음과 동일
가능한 한 W4로 프로그래밍 권장
13
코드 분석(분석(N) > 코드 분석 실행(R))
정의된 코딩 가이드에 따라 코드 분석 기능 제공
솔루션 속성 > 공용 속성 > 코드 분석 설정
시나리오 기능을 통해 발생할 수 있는 버그 설명
Visual Studio 2017 에서는 모두 다시 빌드로 동작
오류 목록에서 세부 정보 확인 가능
14
Advanced Features:
프로파일링을 통한 프로그램 최적화
프로파일링 : 진단 도구
Visual Studio 2015부터 도입
디버깅 중 메모리와 CPU 사용량을 시간별로 기록
필터링, 힙 프로파일링(힙 메모리 사용량 시간별 기록) 제공
힙 프로파일링 사용 시 스냅숏 기능으로 특정 시간의 메모리 사용량 기록 가능
메모리 누수나 병목 현상이 일어나는 지점 유추 가능
자세한 내용은 MSDN 참고 | https://goo.gl/yca6wB
16
프로파일링(분석(N) > 성능 프로파일러(F) | Alt + F2)
디버깅의 꽃
목적에 따라 다음 기능 제공
CPU 사용량
메모리 사용량
GPU 사용 현황
성능 마법사
원하는 도구를 선택하고 [시작]하여 프로파일링 시작
17
프로파일링(분석(N) > 성능 프로파일러(F) | Alt + F2)
실행을 종료하여 프로파일링 완료
완료 후 보고서를 통해프로그램 병목, 메모리 누수 등을 검사
18
프로파일링(분석(N) > 성능 프로파일러(F) | Alt + F2)
사용 예 : 성능 병목을 검사하기 위해실행 부하 과다 경로를 검사
1. 실행 부하 과다 경로에 있는조사하고 싶은 경로를 더블 클릭
2. 시각화 된 실행 부하 비율을 보고최적화 모색
왼쪽 호출 함수를 클릭하여상위 스택으로 이동 가능
오른쪽 호출된 함수를 클릭하여하위 스택으로 이동 가능
19
For DirectX Developer:
그래픽 디버깅
그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))
DirectX 등 3D 그래픽 프로그래밍에서고급 그래픽 기술을 사용할 때 도움을 주는 디버거
Visual Studio 2015에서는 기본 설치
Visual Studio 2017에서는 설치 옵션에서 다음 항목 체크
Visual Studio Installer > 게임 개발 도구 모음 > DirectX용 그래픽 디버거 및 GPU 프로파일러
단축키 | Alt + F5
21
그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))
디버깅을 원하는 장면에서
1. 키보드 : Print Screen 버튼
2. 디버깅 창 : 프레임 캡처
단축키 | Alt + F5
22
그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))
이 장면이 그려지는 모든 이벤트가 기록되어이벤트 목록에 표시
이벤트 목록에 있는 항목을 클릭하여해당 이벤트가 발생했을 때까지완료된 정보 확인 가능
단축키 | Alt + F5
23
그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))
각 파이프라인 단계 확인 가능
연결된 리소스 확인 가능
텍스처 또는 렌더 타겟이라면 텍스처 확인 가능
단축키 | Alt + F5
24
그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))
결과 화면을 클릭하여 픽셀 기록 확인 가능
단축키 | Alt + F5
25
그래픽 디버깅(디버그(D) > 그래픽(C) > 그래픽 디버깅 시작(G))
랜더링 중간 과정 최종 결과
단축키 | Alt + F5
26
Thank You