관리되는 코드에서 예외가 발생하는 경우 예외에 대한 스택 추적이 예외의 원인을 이해하는 데 유용할 수 있습니다. 하지만 아래 설명과 같이 경우에 따라 관리되는 스택 추적이 올바르게 표시되지 않을 수 있습니다. 스택 추적은 빌드 설정에 따라서 달라집니다.
디버그 빌드 설정을 사용하는 경우 IL2CPP는 신뢰할 수 있는 관리 스택 추적을 보고하고 관리되는 메서드를 호출 스택에 각각 포함합니다. 스택 추적에는 원본 C# 소스 코드의 줄 번호가 포함되지 않습니다.
릴리스 빌드 설정을 사용하는 경우 IL2CPP는 관리되는 메서드가 하나 이상 누락된 호출 스택을 생성할 수 있습니다. 이는 C++ 컴파일러에서 누락된 메서드를 인라이닝했기 때문입니다. 메서드를 인라이닝하면 일반적으로 런타임에 성능을 높이는 데 유리하지만, 호출 스택을 이해하기가 더 어려워질 수 있습니다. IL2CPP는 항상 호출 스택에서 관리되는 메서드를 하나 이상 제공합니다. 이 메서드는 예외가 발생한 메서드이고 인라이닝되지 않은 다른 메서드도 포함합니다.
IL2CPP 호출 스택에는 디버그 또는 릴리스 설정의 소스 코드 줄 번호가 포함되지 않습니다.