스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록

2024.05.28 TIL - 디버깅 특강 정리

테크러너 2024. 5. 28.

버그와 에러 유형

런타임 오류

  • apple is a fruit
  • 실행중에 발생하는 오류로 무효한 연산, 배열 인덱스 오버플로우, 형식 변환 오류 등.

논리 오류

  • apple(null) is a fruit
  • 문법적으로는 문제 없지만 의도와 다른 결과를 출력할 때 발생. 콘솔에 나오지 않음.

컴파일 에러

  • apple is a animal
  • 컴파일 단계에서 나오는 에러로 문법오류나 변수 선언 문제등

예외 

  • aple is a fruit
  • 프로그램 실행 중에 예기치 않은 상황이 발생할때. try catch로 처리

 

중단점

버그가 의심되는 라인을 클릭하여 `F9`누르기 또는 좌측 라인의 왼쪽에 동그란 표시가 나오는곳 클릭

 

조건 중단점

  • 특정 조건을 만족 시킬경우만 중단하는 중단점
  • ex) 100마리 적이 이동하는 함수에서 특정 적 하나만 캐치해서 디버깅이 가능

 

디버깅모드 창

호출 스택

  • 현재 중단점까지 오는 과정을 스택 형태로 보여줌

조사식

  • 현재 중단된 상황에서 변수를 직접 입력하여 실제 내용을 볼 수 있음
  • 현재 클래스 뿐이 아닌 접근 가능한 싱글톤이나 다른 클래스까지 볼 수 있다.

로컬

  • 현재 중단된 씬에 관련된 정보를 제공

자동

  • 현재 중단된 라인에서 디버깅에 필요한 내용들을 자동으로 제공해줌
  • 대체로 진짜 필요한 정보는 싱글톤 매니저에 많으므로 조사식을 더 사용하게 됨

중단점

  • 생성되어있는 중단점 목록
  • 중단점이 많아질수록 유니티 연결이 느려지고 너무 많아지면 연결과정에서 멈추는 경우도 생김
  • 디버깅이 끝나면 왠만하면 지우고, 연결이 뭔가 느리다? 싶으면 중단점부터 체크

 

단축키

F10

  • 한 줄씩 실행

F11

  • 디버깅 중에 특정 함수내에 진입하고 싶을 때

Shift+F11

  • 현재 함수를 빠져나가 상위단계에서 디버깅을 진행하고 싶을 때

F5

  • 다음 중단점까지 점프
  • 다음 중단점이 없을 경우 디버깅 종료 후 유니티 에디터 플레이 모드로 돌아감

 

대표적인 오류

NullReferenceException

  • 어떤 변수가 null일 경우 null인 변수 내부 액세스를 하려고 할때 발생

IndexOutOfRangeException

  • 배열, 리스트에서 유효하지 않은 인덱스에 엑세스 하는 상황에서 발생

MissingComponentException

  • 게임오브젝트에서 누락된 컴포넌트에 액세스 할때 발생

Syntax Error

  • 문법 오류. 콘솔에서 더블클릭해서 ;를 빼먹었거나 오타가 있는지 체크
반응형

댓글