# IL2CPP로 관리되는 스택 추적

> Configure IL2CPP compiler settings to produce more informative managed stack traces for easier debugging.

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

## C++ Compiler Configuration 옵션

### Debug

[C++ Compiler Configuration](/engine/6000.0/script-reference/unity-editor/il-2-cpp-compiler-configuration.md) 프로퍼티를 **Debug**로 설정하면 IL2CPP가 신뢰할 수 있는 관리되는 스택 추적을 보고하고 호출 스택에 각 관리되는 메서드를 포함합니다. 스택 추적에는 원본 C# 소스 코드의 줄 번호가 포함되지 않습니다.

### Release 및 Master

[C++ Compiler Configuration](/engine/6000.0/script-reference/unity-editor/il-2-cpp-compiler-configuration.md) 프로퍼티를 **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 프로퍼티:**
![](/api/media?file=/engine/6000.0/media/images/IL2CPP-source-code-line-numbers.png)

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

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

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

## 스크립트 디버깅 활성화

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

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

## 추가 리소스

* [C++ Compiler Configuration](/engine/6000.0/script-reference/unity-editor/il-2-cpp-compiler-configuration.md)
