Version: Unity 6.0 (6000.0)
언어 : 한국어
IL2CPP runtime code checks
IL2CPP 추가 인자에 관한 플랫폼별 설정 처리

IL2CPP로 관리되는 스택 추적

관리되는 코드에서 예외가 발생하면 예외에 대한 스택 추적을 통해 예외의 원인을 이해할 수 있습니다. 하지만 관리되는 스택 추적은 경우에 따라 예상대로 표시되지 않을 수 있습니다. 스택 추적은 빌드 설정에 따라 달라집니다.

C++ Compiler Configuration 옵션

Debug

C++ Compiler Configuration 프로퍼티를 Debug로 설정하면 IL2CPP가 신뢰할 수 있는 관리되는 스택 추적을 보고하고 호출 스택에 각 관리되는 메서드를 포함합니다. 스택 추적에는 원본 C# 소스 코드의 줄 번호가 포함되지 않습니다.

Release 및 Master

C++ Compiler Configuration 프로퍼티를 Release 또는 Master로 설정하면 IL2CPP가 하나 이상의 관리되는 메서드가 누락된 호출 스택을 생성할 수 있습니다. 이는 C++ 컴파일러가 누락된 메서드를 인라이닝할 때 발생합니다. 메서드 인라이닝은 일반적으로 런타임 성능을 개선하지만, 이로 인해 호출 스택을 이해하기 어려울 수 있습니다.

IL2CPP는 항상 호출 스택에 하나 이상의 관리되는 메서드를 제공합니다. 관리되는 예외에서 생성된 스택 추적의 경우, 이는 예외가 발생한 메서드입니다. 다른 메서드도 인라이닝되지 않은 경우 포함됩니다.

소스 코드 줄 번호

관리되는 스택 추적에 파일 및 줄 번호 정보를 포함하려면 Edit > Project Settings > Player > Other Settings로 이동합니다. 그런 다음 Configuration 헤딩에서 IL2CPP Stacktrace Information 프로퍼티를 Method Name, File Name, Line Number로 설정합니다.

Method Name, File Name, Line Number로 설정된 IL2CPP Stacktrace Information 프로퍼티
Method Name, File Name, Line Number로 설정된 IL2CPP Stacktrace Information 프로퍼티

이 설정은 IL2CPP가 호출 스택에 모든 관리되는 스택 프레임을 포함하도록 합니다. 또한 해당 코드가 있는 관리되는 어셈블리(.dll)에 대해 관리되는 심볼 파일(.pdb)을 사용할 수 있는 한, 각 스택 프레임에는 적절한 C# 줄 번호도 포함됩니다.

이 기능을 활성화하면 빌드 시간과 빌드된 프로그램의 최종 크기가 약간 증가합니다. 플레이어 빌드 프로세스는 디버그 심볼 파일을 처리하고 필요한 심볼 형성을 포함하는 새 데이터 파일을 생성하는 추가 단계를 포함합니다. Unity는 이 데이터 파일을 구축된 플레이어에 제공하고 런타임 시 이 파일을 사용하여 호출 스택의 C# 줄 정보를 파악합니다.

이 기능을 활성화하면 인라이닝이 있더라도 Unity는 Release 또는 Master 설정에서 올바른 호출 스택을 생성합니다.

스크립트 디버깅 활성화

스크립트 디버깅을 활성화하려면 File > Build Profiles로 이동한 다음 Script Debugging 체크박스를 활성화합니다. 스크립트 디버깅이 활성화되면 IL2CPP는 메서드, 파일, 줄 번호와 함께 올바른 관리되는 스택 추적을 보고합니다. 이로 인해 프로그램 크기가 커지고 성능이 저하됩니다.

스택 추적만 개선하려면 스크립트 디버깅을 활성화해서는 안 됩니다. 대신 위에서 설명한 대로 소스 코드 줄 번호를 활성화합니다.

추가 리소스

IL2CPP runtime code checks
IL2CPP 추가 인자에 관한 플랫폼별 설정 처리
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961