본문 바로가기
개인공부/Rookiss C++ 프로그래밍 입문

Chapter 9 - 디버깅

by 하고싶은건많은놈 2023. 3. 29.

디버깅

F5 : 다음 중단점 혹은 프로그램 끝까지 실행
F10 : 단순히 다음 라인으로 진행
F11 : 호출된 함수 내부로 진입

중단점 항목에서 중단점들을 간편하게 관리 가능
중첩된 함수 호출시 호출 스택 정보가 유용하게 사용됨
중단점에 조건식을 걸어줄 수도 있음
중단점에서 로그 메세지를 출력하도록 할 경우 중단하는 대신 메시지를 디버그 콘솔에 표시함

코드를 읽는 것보다 디버깅을 하는 것이 훨씬 효율적임


디버깅 문제 풀이 #1 / #2 / #3

Q1 : 인수가 설정된 생성자에서 변수를 초기화하지 않음

Q2 : 배열의 인덱스 범위를 벗어남

Q3 : hp가 음수가 되는 경우를 상정하지 않음

Q4 : 오버플로우가 발생하는 경우를 상정하지 않음

Q5 : 0으로 나눠지는 경우를 상정하지 않음

Q6 : 무한한 재귀로 인한 스택오버플로우 발생

Q7 : 소멸자를 가상 함수로 선언하지 않아 부모 클래스의 소멸자만 실행됨

Q8 : 동적 할당되지 않은 지역변수에 delete를 시도함

Q9 : 이미 해제된 메모리에 대해 해제를 시도함

Q10 : 해제시킨 메모리에 접근함(use after free)

'개인공부 > Rookiss C++ 프로그래밍 입문' 카테고리의 다른 글

Chapter 11 - STL  (0) 2023.03.29
Chapter 10 - 콜백 함수  (0) 2023.03.29
Chatper 8 - 실습  (0) 2023.03.29
Chapter 7 - 동적 할당  (0) 2023.03.29
Chapter 6 - 객체지향 여행  (0) 2023.03.29

댓글