Version: 2017.4
Collaborate のトラブルシューティングのヒント
Performance Reporting の設定

Unity Performance Reporting

Unity の Performance Reporting は例外データとネイティブなクラッシュを見つけて収集します。これにより、ランタイムに何が発生しているかを理解し、プロジェクトをより早く最適化することができます。例外は、ゲームが完成したビルドで実行される場合とエディターで再生モードの場合に Services Dashboard で更新されます。

Services Dashboard
Services Dashboard

Performance Reporting を有効にして、ネイティブユーザーコード、エンジンコード、プラグインのクラッシュなどのクラッシュを追跡するための詳細は、 Performance Reporting の設定 を参照してください。

ネイティブクラッシュレポートが利用可能なプラットフォーム

ネイティブクラッシュレポートは、Unity Performance Reporting の一部として Unity Plus と Pro のユーザーに提供されています。

プラットフォーム 可能な Unity エディター (以下のバージョン以降)
iOS 5.6
Android 2017.2
MacOS 2017.3
Windows 2018.1

iOS クラッシュレポート

IL2CPP を使用し、iOS Player Settings の Script Call Optimization を Fast but no exceptions に設定すると、iOS クラッシュレポートは、キャッチされないマネージ例外によるクラッシュを見つけます。

Script Call Optimization 設定に関する情報は、iPhone Optimization を参照してください。

レポート

レポートにはクラッシュしたスレッドのネイティブスタックトレースが表示されます。クラッシュがキャッチされないマネージ例外によって発生した場合、レポートには、ネイティブスタックトレースとともに、例外の発生元のマネージスタックトレースも表示されます。

iOS クラッシュレポートでは、アプリケーションがメモリ不足になり、オペレーティングシステムによって閉じられたことによるクラッシュを捉えることはできません。

Unity Cloud Developer Dashboard にクラッシュが表示されます。ここでゲームを選択し、 Enable Game Performance (図 A) を選択します。

図 A: Unity Cloud Developer Dashboard の Game Performance オプション
図 A: Unity Cloud Developer Dashboard の Game Performance オプション

例

以下は、マネージ例外によるクラッシュのレポート例を表示ます。


Managed Stack Trace:

at CrashTests.CrashNextUpdate () [0x00000] in <filename unknown>:0

at CrashTests.Update () [0x00000] in <filename unknown>:0

Native StackTrace:

Thread 0 (crashed)

0 crashreporttest CrashedCheckBelowForHintsWhy() (CrashReporter.mm:106)

1 crashreporttest UnhandledExceptionEventHandler_Invoke_m689053609 (mscorlib_System_Delegate3660574010.h:79)

2 crashreporttest RuntimeInvoker_Void_t2779279689_Il2CppObject_Il2CppObject(MethodInfo const*, void*, void**) (Il2CppInvokerTable.cpp:405)

3 crashreporttest il2cpp::vm::Runtime::CallUnhandledExceptionDelegate(Il2CppDomain*, Il2CppDelegate*, Il2CppObject*) (Runtime.cpp:350)

4 crashreporttest il2cpp::vm::Runtime::UnhandledException(Il2CppObject*) (Runtime.cpp:440)

5 crashreporttest ScriptingInvocationNoArgs::Invoke(ScriptingException**) (ScriptingInvocationNoArgs.cpp:131)

6 crashreporttest ScriptingInvocationNoArgs::Invoke() (ScriptingInvocationNoArgs.cpp:95)

7 crashreporttest MonoBehaviour::CallUpdateMethod(int) (MonoBehaviour.cpp:541)

8 crashreporttest void BaseBehaviourManager::CommonUpdate<BehaviourManager>() (Behaviour.cpp:169)

9 crashreporttest PlayerLoop(bool, bool, IHookEvent*) (Player.cpp:1721)

10 crashreporttest UnityPlayerLoopImpl(bool) (LibEntryPoint.mm:240)

11 crashreporttest UnityRepaint (UnityAppController+Rendering.mm:238)

12 crashreporttest -[UnityAppController(Rendering) repaintDisplayLink] (UnityAppController+Rendering.mm:54)

13 QuartzCore CA::Display::DisplayLinkItem::dispatch()

14 QuartzCore CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long)

15 IOKit IODispatchCalloutFromCFMessage

16 CoreFoundation __CFMachPortPerform

17 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__

18 CoreFoundation __CFRunLoopDoSource1

19 CoreFoundation __CFRunLoopRun

20 CoreFoundation CFRunLoopRunSpecific

21 GraphicsServices GSEventRunModal

22 UIKit UIApplicationMain

23 crashreporttest main (main.mm:32)

  • 2018–03–27 限られた 編集レビュー で修正されたページ
  • Unity 5.5で Capture Editor Exceptions 設定を追加し、Optimize game performance スイッチのラベルを Discover app errors に変更
Collaborate のトラブルシューティングのヒント
Performance Reporting の設定