9. 디버깅 테크닉
박민근
프로그래밍이란..

코딩 30%, 디버깅 70%로
구성되어 있다.
네가 단 세

줄의 코드를 짜더라도…

언젠가는 디버깅 할 날이 온다…
디버깅 테크닉
1.
2.
3.
4.
5.
6.
7.

브레이크 포인트 (중단점)
호출스택 확인
변수 값의 확인 (자동/조사식)
중단점 조건
중단점 적중 횟수
버퍼 오버플로우/언더런
Runtime Error
브레이크 포인트(중단점)
프로그램의 흐름을 일시 정지하여, 디버깅 상태가 된다.

가장 중요한 디버깅 테크닉
디버깅 모드(F5)로
프로그램을 실행시켜야 하는
이유

Shift – F5 디버깅 종료

F10 F11 -

...
호출 스택(Call Stack) 확인

프로그램이 멈춘 시점에서, 어디서 호출 되었는지를 확인 할 수 있

• 아래에서부터 위로 호출 된 순서
• 현재 위치가 어떤 순서로 호출되었는지
확인할 수 있다.
변수 값 확인 (자동)
현재 실행되고 있는 변수 값을 확인한다. 리턴값도 확인 가능

• 현재 변수들의 값을 알 수 있다.
• 현재 변수의 메모리 주소를 알 수 있다
• 배열의 값, 구조체의 값등도 확인 가능
변수 값 확인 (조사식)
현재 실행되고 있는 순간의 원하는 변수값을 확인 가능

• 확인하기 원하는 변수값만 등록하여
확인 가능하다.
• 실행되는 부분과 관련이 없는 변수 확인
• 관심있는 변수들만 확인할 때
중단점 조건

변수값을 비교하여, 조건이 맞을때 프로그램을 중단시킨
중단점 적중 횟수
중단점에 히트된 횟수를 체크하여, 중단 시킨다
버퍼 오버플로우/언더런

생성된 메모리 범위 이외에 값을 쓰는 버그
컴파일 체크가 되지 않기 때문에, 가장 위험한 버그 중 하
Runtime Error
실행중에 처리되지 않는 다양한 상황에서 나오는 에러
컴파일 에러에서 잡지 못하기 때문에, 훨씬 위험 하다.
일명 “뻑났다"라는 것.
Runtime Error
대표적인 상황

할당되지 않거나, 이미 해제된 메모리(포인터)의 사용
언제나 방어적

프로그래밍을

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

프로그램은 거짓말을 하지 않지만
프로그래머는 실수를 한다.
[C++ lab] 9. 디버깅 테크닉
Upcoming SlideShare
Loading in...5
×

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

1,131

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,131
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
17
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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

  1. 1. 9. 디버깅 테크닉 박민근
  2. 2. 프로그래밍이란.. 코딩 30%, 디버깅 70%로 구성되어 있다. 네가 단 세 줄의 코드를 짜더라도… 언젠가는 디버깅 할 날이 온다…
  3. 3. 디버깅 테크닉 1. 2. 3. 4. 5. 6. 7. 브레이크 포인트 (중단점) 호출스택 확인 변수 값의 확인 (자동/조사식) 중단점 조건 중단점 적중 횟수 버퍼 오버플로우/언더런 Runtime Error
  4. 4. 브레이크 포인트(중단점) 프로그램의 흐름을 일시 정지하여, 디버깅 상태가 된다. 가장 중요한 디버깅 테크닉 디버깅 모드(F5)로 프로그램을 실행시켜야 하는 이유 Shift – F5 디버깅 종료 F10 F11 - 한줄씩 실행 함수 내부 디버깅
  5. 5. 호출 스택(Call Stack) 확인 프로그램이 멈춘 시점에서, 어디서 호출 되었는지를 확인 할 수 있 • 아래에서부터 위로 호출 된 순서 • 현재 위치가 어떤 순서로 호출되었는지 확인할 수 있다.
  6. 6. 변수 값 확인 (자동) 현재 실행되고 있는 변수 값을 확인한다. 리턴값도 확인 가능 • 현재 변수들의 값을 알 수 있다. • 현재 변수의 메모리 주소를 알 수 있다 • 배열의 값, 구조체의 값등도 확인 가능
  7. 7. 변수 값 확인 (조사식) 현재 실행되고 있는 순간의 원하는 변수값을 확인 가능 • 확인하기 원하는 변수값만 등록하여 확인 가능하다. • 실행되는 부분과 관련이 없는 변수 확인 • 관심있는 변수들만 확인할 때
  8. 8. 중단점 조건 변수값을 비교하여, 조건이 맞을때 프로그램을 중단시킨
  9. 9. 중단점 적중 횟수 중단점에 히트된 횟수를 체크하여, 중단 시킨다
  10. 10. 버퍼 오버플로우/언더런 생성된 메모리 범위 이외에 값을 쓰는 버그 컴파일 체크가 되지 않기 때문에, 가장 위험한 버그 중 하
  11. 11. Runtime Error 실행중에 처리되지 않는 다양한 상황에서 나오는 에러 컴파일 에러에서 잡지 못하기 때문에, 훨씬 위험 하다. 일명 “뻑났다"라는 것.
  12. 12. Runtime Error 대표적인 상황 할당되지 않거나, 이미 해제된 메모리(포인터)의 사용
  13. 13. 언제나 방어적 프로그래밍을 하는 습관을 가져야 한다!! 프로그램은 거짓말을 하지 않지만 프로그래머는 실수를 한다.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×