クラッシュと例外のレポートについての理解

​クラッシュと例外のレポートは、問題データをキャプチャして Unity DashboardCloud Diagnostics > Crash and Exception Reporting (クラッシュと例外のレポート) セクションに表示します。

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

クラッシュと例外のレポートでキャプチャされる問題には以下の種類があります。

  • ネイティブクラッシュ: ネイティブクラッシュレポートは、アプリケーションが応答を停止したときにスタックトレースとその他のメタデータをキャプチャします。ほとんどの場合、これはアプリケーションのネイティブ (通常は C++) レイヤーでの障害が原因です。
  • マネージ例外: マネージ例外レポートは、アプリケーションのマネージ (通常は C#) レイヤーで未処理の例外が発生したことが原因でアプリケーションが応答を停止したときに、スタックトレースとその他のメタデータをキャプチャします。

クラッシュと例外のレポートでは、個別の問題のレポートが問題レポートに集約されます。これらのクラッシュと例外の発生頻度は、ダッシュボードの Occurrence (発生数) ビューから確認できます。

クラッシュと例外のレポートを表示するには、Unity エディターの Cloud Diagnostics パネルからダッシュボードを開くか、ブラウザーウィンドウから Unity Dashboard にサインインします。

エディターからクラッシュと例外のレポートにアクセスするには、以下を行います。

  1. Unity エディターでプロジェクトを開きます。
  2. メニューバーから、Window (ウィンドウ) > General (全般) > Services (サービス) を選択します。
  3. Services (サービス) ウィンドウから、Cloud Diagnostics を選択します。
  4. Cloud Diagnostics パネルで、Go to Dashboard (ダッシュボードに移動) を選択します。
  5. メインナビゲーションメニューから、DevOps > Cloud Diagnostics > Crash and Exception Reporting (クラッシュと例外のレポート) を選択します。

ダッシュボードからクラッシュと例外のレポートにアクセスするには、以下を行います。

  1. ブラウザーから Unity Dashboard にサインインします。
  2. 上部のナビゲーションメニューのプロジェクトセレクターから、Cloud Diagnostics に接続されているプロジェクトを指定します。
  3. プロジェクトを指定したら、メインナビゲーションメニューから Cloud Diagnostics > Crash and Exception reports (クラッシュと例外のレポート) に移動します。

クラッシュと例外のレポートページについて

クラッシュと例外のレポートページは、以下の 3 つの主要部分で構成されています。

  1. 概要とフィルター
  2. Occurrences (発生数) グラフ
  3. Problems (問題) リスト

概要とフィルター

クラッシュと例外のレポートページの上部には、レポートの概要とフィルタリングオプションが表示されます。

ページ上部のレポート集計には、アカウントの前日に生成されたレポート数とレポート使用容量が示されます。レポート数の制限を引き上げる必要がある場合は、Unity Pro または Plus にアップグレードするか、サポートにお問い合わせください。この概要ビュー内で、ネイティブクラッシュの合計数影響を受けたユーザー数例外の合計数 に関する情報をすばやく把握できます。

特定の種類の問題に焦点を当てるには、レポートをフィルター処理します。選択したフィルターの結果が、Occurrences (発生数) グラフと Problems (問題) リストに表示されます。Add filter (フィルターを追加) ドロップダウンメニューを使用して、事前に選択されたフィルターのセットから選択し、関数と値を適用します。

フィルターを適用するには、以下を行います。

  1. Add filter (フィルターを追加) ボタンを選択します。
  2. フィルターの種類を選択します。フィルターに関数と値が必要な場合は、2 番目のドロップダウンが開きます。
  3. 該当する場合は、フィルターに適用する 関数 (equals または does not equal) と を指定します。
  4. Apply (適用) を選択してフィルターを適用します。

フィルターを削除するには、フィルターの種類の横にある x を選択します。

Occurrences (発生数) グラフ

Occurrences (発生数) グラフには、問題の数が経時的に表示されます。12 時間から 7 日間 (Cloud Diagnostics の場合) または 90 日間 (Advanced Cloud Diagnostics) までの事前定義された期間でフィルター処理できます。日付範囲を指定するには、レポート期間のドロップダウンを選択し、表示する時刻または日付の範囲を選択します。

Occurrences (発生数) グラフからレポートの削除を選択することもできます。これは、レポートされた問題が修正され、ダッシュボードに表示する必要がなくなった場合に役立ちます。

Problems (問題) リスト

Problems (問題) リストには、問題レポートを種類別にレポートの合計数でソートしたリストが表示されます。レポートの詳細を表示するには、レポート名を選択します。

問題レポートの詳細について

特定の問題レポートの詳細を表示するには、Problems (問題) リストからレポートを選択します。これにより問題の詳細ページが開き、選択したレポートの詳細が表示されます。

問題レポートの詳細ページの上部のセクションには、ID、問題のメッセージ、種類、影響を受けたユーザー数など、選択したレポートのサマリーが表示されます。

問題レポートの詳細ページの中央のセクションには、経時的な発生数と、影響を受けた OS、アプリケーションバージョン、デバイスモデルの集計データが表示されます。

下部のセクションには個別の問題レポートが表示され、問題レポートのタイトルや、選択したクラッシュまたは例外のレポートが発生した日時などが示されます。

問題レポートの詳細ページの下部には以下のタブがあります。

  • Stack trace (スタックトレース): 表示している特定の問題レポートのスタックトレースが含まれます。スタックトレースは、問題が発生したコード内の場所を特定するのに役立ちます。
  • Metadata (メタデータ): 問題が発生したデバイスのデバイス固有のメタデータが含まれます。コード内で定義したカスタムメタデータもここに表示されます。カスタムメタデータを設定するには、CrashReportHandler.SetUserMetadata メソッドを使用します。
  • Logs (ログ): Debug クラスの Log メソッドを使用して出力したログメッセージが表示されます。ログメッセージには、メッセージの種類、日時、発生フレーム、メッセージが含まれます。キャプチャされるログメッセージのデフォルトの数は 10 件です。これは CrashReportHandler.logBufferSize メソッドを使用して、0 - 50 件のメッセージをキャプチャするように設定できます。

特定の問題レポートのデータを JSON 形式でダウンロードできます。レポートをダウンロードするには、問題の詳細ページの下部にある JSON ボタンを選択します。

次のステップ

クラッシュと例外のレポートを設定し、理解したので、次は デバッグシンボル を追加して問題をさらに特定する方法を学びましょう。