マネージコードで例外が発生する場合、例外のスタックトレースは例外の原因を理解するのに役立ちます。ただし、ある状況ではマネージスタックトレースが想定通りに表示されない場合があります。以下にそれを説明します。スタックトレースはビルド構成によっても異なります。
デバッグビルド構成を使用する場合、IL2CPP は信頼できるマネージスタックトレースを報告し、各マネージメソッドをコールスタックに包含する必要があります。 スタックトレースには、元の C# ソースコードの行番号は含まれません。
リリースビルド構成を使用すると、IL2CPP は、1 つ以上のマネージメソッドが欠落しているコールスタックを生成する場合があります。これは、C++ コンパイラーが不足しているメソッドをインライン化したためです。メソッドのインライン化は通常、ランタイムのパフォーマンスには適していますが、呼び出しスタックを理解しにくくする可能性があります。IL2CPP は、常にコールスタックに少なくとも 1 つのマネージメソッドを提供します。これは、例外が発生するメソッドです。インライン化されていない場合は、他のメソッドも含まれます。
IL2CPP コールスタックには、デバッグ構成、または、リリース構成のソースコード行番号の情報が含まれていません。