---
title: IL2CPP マネージスタックトレース
product: Unity Editor
version: '6000.0'
latest_version: '7000.0'
status: This page documents version 6000.0. The latest version is 7000.0.
canonical: https://docs.unity.com/ja-jp/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/backends/il2cpp/il2cpp-managed-stack-traces
latest_url: https://docs.unity.com/ja-jp/engine/7000.0/manual/scripting/compilation-and-code-reload/script-compilation/backends/il2cpp/il2cpp-managed-stack-traces.md
generated_at: 2026-11-14T04:39:04.171Z
locale: ja-jp
---

# IL2CPP マネージスタックトレース

> IL2CPP コンパイラー設定を構成し、デバッグを容易にするために、より情報量の多いマネージスタックトレースを生成します。

マネージコードで例外が発生した場合、例外の[スタックトレース](/engine/6000.0/manual/scripting/debugging-and-diagnostics/stack-trace.md)は例外の原因を理解するのに役立ちます。ただし、マネージスタックトレースが期待通りに表示されない場合があります。スタックトレースはビルド設定によって異なります。

## C++ コンパイラー設定##c++-compiler-configuration

IL2CPP ビルドの C++ コンパイラー設定は、以下のいずれかの方法で設定できます。

* エディターの Editor メニューから。**プレイヤー設定**メニューからスクリプトバックエンドを変更するには、以下の手順を実行します。

  1. **編集**> Editor に移動します。
  2. **プレイヤー設定**ボタンをクリックして、[**Inspector**](/engine/6000.0/manual/unity-editor/editor-settings-reference/comp-manager-group/class-player-settings.md) で現在のプラットフォームの[**プレイヤー**](/engine/6000.0/manual/unity-editor/editor-windows-views-reference/using-the-inspector.md)設定を開きます。
  3. **Other Settings** サブメニューの下の **設定**セクションの見出しに操作します。
  4. **C++ コンパイラー設定**プロパティを**デバッグ**、**リリース**、または**マスター**に設定します。

* コードから、[`Il2CppCompilerConfiguration`](/engine/6000.0/script-reference/unityeditor/playersettings/setil2cppcompilerconfiguration.md) enum からの値で[`PlayerSettings.SetIl2CppCompilerConfiguration`](/engine/6000.0/script-reference/unityeditor/il2cppcompilerconfiguration.md)を呼び出す。

この設定は、マネージスタックトレースに以下の影響を与えます。

* \--**debug**IL2CPP は、信頼性の高いマネージスタックトレースを報告し、コールスタックに各マネージメソッドを含めます。スタックトレースには、元の Cソースコードの行番号は含まれません。
* **リリース**または**マスター**:IL2CPP によって、1 つ以上のマネージメソッドがないコールスタックが生成される場合があります。これは、C++ コンパイラーが欠落しているメソッドをインライン化するときに発生します。メソッドインライン化は通常、ランタイムパフォーマンスを向上させますが、コールスタックの理解をより難しくする場合があります。

IL2CPP は常に、コールスタックに少なくとも 1 つのマネージメソッドを提供します。マネージ例外から作成されたスタックトレースの場合は、例外が発生したメソッドです。インライン化されていない場合は、他のメソッドも含まれます。

## IL2CPP スタックトレース情報##il2cpp-stack-trace-information

マネージスタックトレースにインクルードファイルと行番号の情報を含めるように IL2CPP を設定するには、以下のいずれかの方法を使用します。

* エディターのプレイヤー設定:**編集**> **プロジェクト設定**> **プレイヤー**> その**他の設定**。次に、**設定**の見出しで、「 **IL2CPP スタックトレース情報** 」プロパティーを「 \*\*メソッド名、\*\*ファイル名、行番号 」設定に設定します。
* コードから、パラメーター値として[`Il2CppStacktraceInformation.MethodFileLineNumber`](/engine/6000.0/script-reference/unityeditor/playersettings/setil2cppstacktraceinformation.md)を使用して[`PlayerSettings.Il2CppStacktraceInformation`を](/engine/6000.0/script-reference/unityeditor/il2cppstacktraceinformation.md)呼び出します。


**The IL2CPP Stacktrace Information property, set to Method Name, File Name, and Line Number:**
![](/api/media?file=/engine/6000.0/media/images/IL2CPP-source-code-line-numbers.png)

この設定は、IL2CPP にすべてのマネージスタックフレームをコールスタックに含めるよう指示します。各スタックフレームには、マネージシンボルファイル (.pdb) が、そのコードが存在するマネージアセンブリ (.dll) で使用可能である限り、適切な C# 行番号も含まれます。

この特徴を有効にすると、ビルド時間とビルドされたプログラムの最終的なサイズの両方がわずかに増加します。プレイヤーのビルドプロセスには、デバッグシンボルファイルを処理し、必要なシンボルの形成を含む新しいデータファイルを生成する追加ステップが含まれます。Unity はこのデータファイルをビルドしたプレイヤーに同梱し、ランタイムに使用してコールスタックの C# 行情報を判別します。

この機能を有効にすると、Unity はメソッドのインライン化がアクティブな場合でも、**リリース**設定または**マスター**設定のいずれかで正しいコールスタックを生成します。

## スクリプトのデバッグ##script-debugging

**スクリプトデバッグを**有効にするには、**ファイル**>**ビルドプロファイル**に移動し、**スクリプトデバッグ**チェックボックスを有効にします。スクリプトデバッグを有効にすると、IL2CPP はメソッド、ファイル、および行番号とともに正しいマネージスタックトレースを報告します。これは、プログラムサイズが大きくなり、パフォーマンスが低下することを犠牲にします。

> **Tip:**
>
> スタックトレースのみを改善する場合は、スクリプトデバッグを有効にしないでください。代わりに、上記の手順で [ソースコード行番号](#source-code-line-numbers) を有効にします。

## 追加リソース##additional-resources

* [C++ コンパイラー設定](/engine/6000.0/script-reference/unityeditor/il2cppcompilerconfiguration.md)
