Version: 2023.2
言語: 日本語
<!-- include include-unity-remote-introduction -->
iOS でのパフォーマンスを最適化

iOS のマネージスタックトレース

マネージコードで例外が発生する場合、例外のスタックトレースは例外の原因を理解するのに役立ちます。ただし、iOS では、ある状況ではマネージスタックトレースが想定通りに表示されない場合があります。いかにそれを説明します。スタックトレースはまた、 Xcode ビルド構成によっても異なります。

デバッグビルド

iOS でデバッグビルド構成を使用する場合、IL2CPP は信頼できるマネージスタックトレースを報告し、各マネージメソッドをコールスタックに包含する必要があります。 スタックトレースには、元の C# ソースコードの行番号は含まれません。

リリースビルド

リリースビルド構成を使用する場合、IL2CPP がマネージメソッドが欠けているコールスタックを生成することがあります。これは、C ++ コンパイラーが欠落しているメソッドをインライン展開しているためです。メソッドのインライン展開は、通常、ランタイムのパフォーマンスには優れていますが、コールスタックを理解しにくくする場合があります。IL2CPP は、常にコールスタック上に少なくとも 1 つのマネージメソッドを提供します。これが、例外が発生するメソッドです。 他のメソッドがインライン化されていない場合は、それらも含まれます。

例外をローカルで再現できる場合は、Xcode を使用してどのメソッドがインラインにされているかを判断します。リリース構成を使用して Xcode でアプリケーションを実行し、例外ブレークポイントを設定します。Xcode のネイティブコールスタックビューは、どのメソッドが実際に存在し、どのメソッドがインライン化されているかを示す必要があります。

ソースコード行番号

IL2CPP コールスタックには、デバッグ構成、または、リリース構成のソースコード行番号の情報が含まれていません。


  • 2017–06–08 公開ページ
<!-- include include-unity-remote-introduction -->
iOS でのパフォーマンスを最適化
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961