오늘은 디버그에 대한 수업을 들었다.
1. 단축키
- F9: 브레이크 포인트 설정/해제.
- F10: 다음 줄로 실행(함수 내부 진입 X).
- F11: 함수 내부로 진입하며 실행.
- F5: 브레이크 포인트까지 실행(브레이크 포인트 없으면 끝까지 실행).
- Shift + F11: 함수 내부에서 나옴(되돌림 아님, 전체 실행 후 나오는 것).
- 레이아웃 되돌리기: 레이아웃 문제 시 원래대로 복구.
2. 디버그 모드
2.1디버그 모드와 릴리스 모드 차이
- 릴리스 모드: 디버깅 불가능. 최적화된 실행 모드.
- 디버그 모드: 오류 검출 및 디버깅 용이. 디버깅 전용 환경.
2.2 디버그 창에서의 주요 기능
2.2.1 호출 스택(Call Stack) [ 핵심 ]
위치 :
- 디버그 창 오른쪽 하단.
역할:
- 함수 호출 순서 추적.
- 잘못된 값의 출처 확인(클릭 시 해당 위치로 이동).
- 데이터 손상 여부 및 원인 파악.
2.2.2 값 확인 방법 (3가지)
자동 탭:
- 모든 변수 값을 한눈에 확인(러프하게).
- 함수 반환값도 확인 가능.
커서 올리기:
- 변수 위에 마우스를 올리면 값 확인.
- 추천하지 않음.
조사식 사용:
- 디버그 창에서 조사식 활성화.
- 변수 더블 클릭 후 드래그&드롭으로 추가.
- 삭제 시 변수 선택 후 Del 키.
- 정확한 값 확인에 유용.
- 변수명이 동일한 경우 주의 필요(환경 혼동 방지).
2.3 중단점 (Breakpoints)
목록 확인:
- 디버그 - 창 - 중단점 메뉴에서 전체 확인 가능.
데이터 중단점 사용:
- 디버그 - 새 중단점 - 데이터 중단점 - 주소값 입력 후 특정 데이터의 변화 추적(범인 색출용).
3. 디버그 모드 주의사항
- 잘못 넘긴 실행은 되돌릴 수 없으므로 주의.
- 화살표 드래그로 되돌릴 수는 있으나 이는 중복 실행으로 더 큰 오류를 유발할 수 있음. 그렇기에 절대 화살표를 건드리지 말 것.
- 디버그 모드에서 코드 수정 금지, 코드 수정 후 F10 을 누르게 되면 코드 수정 시 부분 컴파일이 실행 되는데 간혹 코드가 꼬이고 깨지는 경우 발생.
- 실수로 코드 입력이나 변경된 점이 있다면 Ctrl + Z로 즉시 복구
4. 팁
4.1 if문 디버깅:
- 조건문의 결과에 따라 참/거짓 구문이 구분되어 실행되기에 브레이크 포인트로 조건문 흐름을 정확히 추적 가능.
4.2 데이터 손상 발생 시:
- 호출 스택 및 데이터 중단점으로 원인 추적.
4.3 게임 업장에서의 포인터 관리 :
객체 상태 관리 방식 ( 포인터는 대상 객체의 상태를 보장하지 않음 ):
- 생성자(Constructor): 객체 초기화.
- 초기화(Initialized): 상태 설정.
- 해제(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 |