기술 자료

지원

Cloud Diagnostics

Cloud Diagnostics

디버깅 기호 소개

Understand how debugging symbols map program addresses to function names for readable crash stack traces.
읽는 시간 1분최근 업데이트: 한 달 전

기호는 프로그램 주소를 함수 이름에 매핑합니다. 이를 통해 크래시 및 예외 리포트가 네이티브 크래시 스택 트레이스에 숫자 주소 대신 사람이 읽을 수 있는 함수 이름을 부여할 수 있습니다. 그 자체를 실행 파일로 만들 수도 있지만 보통은 실행 파일 크기를 줄이기 위해 별도의 파일에 저장됩니다. Crash and Exception Reporting은 다음 두 가지 기호 세트를 사용합니다.
  • 시스템(OS) 기호: 시스템 기호는 운영체제 공급자에 의해 생성되며 OS에 따라 포맷이 다릅니다. Apple 플랫폼은 dSYM 폴더를 사용하고, Android 기호는 .so 파일에 저장되며, Windows 기호는 .pdb 파일에 저장됩니다. Unity는 Apple, Google, Microsoft에서 생성된 기호를 지원합니다.
  • 애플리케이션(Unity) 기호: 애플리케이션 기호는 Unity 프로젝트를 만들 때 자동으로 생성됩니다.
크래시 및 예외 리포트에 누락된 기호 파일이 있다면 숫자 주소로 나타나기 때문에 문제를 파악하기가 더 어려울 수 있습니다. Crash and Exception Reporting 서비스를 이용하면 리포트에서 문제를 식별하는 데 도움이 되도록 기호 파일을 업로드할 수 있습니다.

누락된 시스템 기호 파악

기호 파일에는 실행 파일의 ID와 일치해야 하는 UUID(범용 고유 ID)나 GUID(글로벌 고유 ID)가 있습니다. 서비스가 라이브러리 또는 모듈과 일치하지 않는 ID의 기호 파일을 로드할 수 없는 경우 Crash and Exception Reporting은 다음 오류를 생성합니다.
  • <system symbols missing>
  • <symbols missing for uuid: xxx...>
이 경우 문제는 보통 Cloud Diagnostics에 운영체제의 해당 버전에 대한 기호가 없는 것입니다. iOS 및 기타 Apple 플랫폼의 경우 이전 버전의 운영체제에 대한 기호를 구하기가 어려울 수 있습니다. 이런 상황에 직면하면 운영체제의 다른 버전에서 유사한 크래시 리포트가 있는지 확인해 보는 것이 좋습니다. 그러면 해당 운영체제 버전에서 디버깅하여 문제를 해결하는 것이 가능할 수도 있습니다.

누락된 애플리케이션 기호 파악

애플리케이션 기호가 누락된 리포트에는 스택 트레이스에 다음과 같은 줄이 있습니다. <symbols missing for uuid: xxx...> Crash and Exception Reporting이 활성화된 프로젝트를 만들 때 Unity는 기호 파일을 생성하여 Crash and Exception Reporting 서버로 업로드합니다. 프로세스가 실패하면 Unity Dashboard에 기호 누락 메시지가 표시됩니다. 기호 업로드에서 문제를 해결하려면 메인 Unity 로그와 같은 폴더에 위치한 symbol_upload.log 파일을 확인하십시오. 이 파일은 어떤 기호가 발견되고 처리되었는지, 기호 처리 및 업로드 도중 어떤 오류가 발생했는지 보여 줍니다.

다음 단계

크래시 및 예외 리포트에 누락된 기호가 있다면 대시보드에서 기호 파일을 업로드하십시오. 기호 파일 업로드를 참고하십시오.