C++

[강의] 11월 21일 수업정리

k-codestudy 2024. 11. 21. 17:16

오늘은 디버그에 대한 수업을 들었다.

 

1. 단축키 

  1. F9: 브레이크 포인트 설정/해제.
  2. F10: 다음 줄로 실행(함수 내부 진입 X).
  3. F11: 함수 내부로 진입하며 실행.
  4. F5: 브레이크 포인트까지 실행(브레이크 포인트 없으면 끝까지 실행).
  5. Shift + F11: 함수 내부에서 나옴(되돌림 아님, 전체 실행 후 나오는 것).
  6. 레이아웃 되돌리기: 레이아웃 문제 시 원래대로 복구.

 

2. 디버그 모드 

 

2.1디버그 모드와 릴리스 모드 차이

 

  • 릴리스 모드: 디버깅 불가능. 최적화된 실행 모드.
  • 디버그 모드: 오류 검출 및 디버깅 용이. 디버깅 전용 환경.

 

2.2 디버그 창에서의 주요 기능

 

2.2.1 호출 스택(Call Stack) [ 핵심 ]

 

위치 :

  • 디버그 창 오른쪽 하단.

역할:

  • 함수 호출 순서 추적.
  • 잘못된 값의 출처 확인(클릭 시 해당 위치로 이동).
  • 데이터 손상 여부 및 원인 파악.

2.2.2 값 확인 방법 (3가지)

 

자동 탭:

  • 모든 변수 값을 한눈에 확인(러프하게).
  • 함수 반환값도 확인 가능.

커서 올리기:

  • 변수 위에 마우스를 올리면 값 확인.
  • 추천하지 않음.

조사식 사용:

  • 디버그 창에서 조사식 활성화.
  • 변수 더블 클릭 후 드래그&드롭으로 추가.
  • 삭제 시 변수 선택 후 Del 키.
  • 정확한 값 확인에 유용.
  • 변수명이 동일한 경우 주의 필요(환경 혼동 방지).

 

2.3 중단점 (Breakpoints)

 

목록 확인:

  • 디버그 - 창 - 중단점 메뉴에서 전체 확인 가능.

데이터 중단점 사용:

  • 디버그 -  새 중단점 - 데이터 중단점 - 주소값 입력 후 특정 데이터의 변화 추적(범인 색출용).

 

3. 디버그 모드 주의사항

  1. 잘못 넘긴 실행은 되돌릴 수 없으므로 주의.
  2. 화살표 드래그로 되돌릴 수는 있으나 이는 중복 실행으로 더 큰 오류를 유발할 수 있음. 그렇기에 절대 화살표를 건드리지 말 것.
  3. 디버그 모드에서 코드 수정 금지, 코드 수정 후 F10 을 누르게 되면 코드 수정 시 부분 컴파일이 실행 되는데 간혹 코드가 꼬이고 깨지는 경우 발생.
  4. 실수로 코드 입력이나 변경된 점이 있다면 Ctrl + Z로 즉시 복구

 

4. 팁

4.1 if문 디버깅:

  • 조건문의 결과에 따라 참/거짓 구문이 구분되어 실행되기에 브레이크 포인트로 조건문 흐름을 정확히 추적 가능.

4.2 데이터 손상 발생 시:

  • 호출 스택 및 데이터 중단점으로 원인 추적.

4.3 게임 업장에서의 포인터 관리 :

 

객체 상태 관리 방식 ( 포인터는 대상 객체의 상태를 보장하지 않음 ): 

  1. 생성자(Constructor): 객체 초기화.
  2. 초기화(Initialized): 상태 설정.
  3. 해제(Delete/Destroy): 바로 삭제하지 않고 유예기간(30초) 후 메모리 해제, 죽은 상태로 관리 후 최종 삭제.

'C++' 카테고리의 다른 글

[강의] 11월 26일 수업정리  (0) 2024.11.27
[강의] 11월 22일 수업정리  (0) 2024.11.23
[강의] 11월 20일 수업정리  (1) 2024.11.21
[강의] 11월 19일 수업정리  (0) 2024.11.20
[강의] 11월 15일 수업정리  (0) 2024.11.17