[c++ lab] 9. 디버깅 테크닉

14
9. 디디디 디디디 (L) C++ 프프프프프 디디디

Upload: mingeun-park

Post on 12-Jun-2015

1.049 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: [C++ lab] 9. 디버깅 테크닉

9. 디버깅 테크닉(L) C++ 프로그래밍

박민근

Page 2: [C++ lab] 9. 디버깅 테크닉

디버깅 테크닉

Page 3: [C++ lab] 9. 디버깅 테크닉

프로그래밍이란 ..

코딩 30%, 디버깅 70% 로

구성되어 있다 .

네가 단 세 줄의 코드를 짜더라도…

언젠가는 디버깅 할 날이 온다…

Page 4: [C++ lab] 9. 디버깅 테크닉

디버깅 테크닉

1. 브레이크 포인트 ( 중단점 )2. 호출스택 확인3. 변수 값의 확인 ( 자동 / 조사식 )4. 중단점 조건5. 중단점 적중 횟수6. 버퍼 오버플로우 / 언더런7. Runtime Error

Page 5: [C++ lab] 9. 디버깅 테크닉

브레이크 포인트 ( 중단점 )프로그램의 흐름을 일시 정지하여 , 디버깅 상태가 된다 . 가장 중요한 디버깅 테크닉

디버깅 모드 (F5) 로

프로그램을 실행시켜야 하는

이유

Shift – F5 디버깅 종료

F10 - 한줄씩 실행

F11 - 함수 내부 디버깅

Page 6: [C++ lab] 9. 디버깅 테크닉

호출 스택 (Call Stack) 확인프로그램이 멈춘 시점에서 , 어디서 호출 되었는지를 확인 할 수 있다

• 아래에서부터 위로 호출 된 순서• 현재 위치가 어떤 순서로 호출되었는지

확인할 수 있다 .

Page 7: [C++ lab] 9. 디버깅 테크닉

변수 값 확인 ( 자동 )현재 실행되고 있는 변수 값을 확인한다 . 리턴값도 확인 가능

• 현재 변수들의 값을 알 수 있다 . • 현재 변수의 메모리 주소를 알 수 있다• 배열의 값 , 구조체의 값등도 확인 가능

Page 8: [C++ lab] 9. 디버깅 테크닉

변수 값 확인 ( 조사식 )현재 실행되고 있는 순간의 원하는 변수값을 확인 가능

• 확인하기 원하는 변수값만 등록하여 확인 가능하다 .

• 실행되는 부분과 관련이 없는 변수 확인• 관심있는 변수들만 확인할 때

Page 9: [C++ lab] 9. 디버깅 테크닉

중단점 조건변수값을 비교하여 , 조건이 맞을때 프로그램을 중단시킨다 .

Page 10: [C++ lab] 9. 디버깅 테크닉

중단점 적중 횟수중단점에 히트된 횟수를 체크하여 , 중단 시킨다

Page 11: [C++ lab] 9. 디버깅 테크닉

버퍼 오버플로우 / 언더런생성된 메모리 범위 이외에 값을 쓰는 버그컴파일 체크가 되지 않기 때문에 , 가장 위험한 버그 중 하나

Page 12: [C++ lab] 9. 디버깅 테크닉

Runtime Error실행중에 처리되지 않는 다양한 상황에서 나오는 에러컴파일 에러에서 잡지 못하기 때문에 , 훨씬 위험 하다 .

일명 “뻑났다"라는 것 .

Page 13: [C++ lab] 9. 디버깅 테크닉

Runtime Error대표적인 상황 할당되지 않거나 , 이미 해제된 메모리 ( 포인터 ) 의 사용

Page 14: [C++ lab] 9. 디버깅 테크닉

언제나 방어적 프로그래밍을

하는 습관을 가져야 한다 !!

프로그램은 거짓말을 하지 않지만

프로그래머는 실수를 한다 .