버그와 에러 유형
런타임 오류
- 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
- 문법 오류. 콘솔에서 더블클릭해서 ;를 빼먹었거나 오타가 있는지 체크
반응형
댓글