Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート
メインコンテンツへスキップ
集約クラッシュレポート(ACR)の概要は、すべてのクラッシュデバッグデータを1つのマークダウンファイルにまとめたものです。Vega Studioは、シンボリケーションの最後に毎回、自動的に概要を生成します。

前提条件

ACRファイルと概要レポートについて

ACRファイルと概要レポートは同じファイルではなく、それぞれ別々の目的で使用されます。

概要の使用方法

Vega Studioは、シンボリケーションが完了すると、自動的に概要を新しいタブとして開きます。 クラッシュを診断するには、次の手順に従います。
  1. 最初にMetadataを確認する - クラッシュの理由と言語を確認して、発生したクラッシュのタイプを理解します。
  2. Symbolicated Stacktracesを調べる - スタックトレースで、アプリに由来する関数名を探します。
  3. System Infoを確認する - クラッシュ時のメモリ使用量を確認します。
  4. ソースコードと相互に参照する - スタックトレースのファイルパスと行番号を使用して、プロジェクト内の問題のあるコードを特定します。
  5. 次の手順を決定する
    • クラッシュがアプリコードで発生した場合は、問題を修正してテストします。
    • クラッシュがOSコードで発生した場合や、システムフレームしか表示されない場合は、ACRファイルを添えてAmazonサポートに問い合わせます。
    • よくわからない場合は、クラッシュの発生元の分析をガイダンスとして参照してください。
    • シンボリケーションに失敗した場合や、概要が不完全な場合は、クラッシュ分析に関する問題の修正を参照してください。

概要の構造

以下のセクションでは、概要の構成要素と、それぞれに含まれる情報について説明します。

ファイルヘッダー

ACRファイルのファイルパスと、関連する一時作業ディレクトリのパスが含まれます。これらのパスを使用して、元のクラッシュファイルとシンボリケーションの中間ファイルを特定できます。 例:

Metadata

このセクションには、ACRファイルから関連するMetadataが含まれます。
  • PROCESS - クラッシュしたプロセス。例:com.example.myappまたは/usr/bin/eventmgrd
  • CRASH_REASON - クラッシュの理由。
  • CRASH_LANG - クラッシュしたコードのプログラミング言語。報告される値は、Native、JavaScript、unknownのいずれかです。ANRのケースでは、クラッシュしたスレッドIDがJavaScriptスレッドIDに一致する場合、ACRファイルには「Unknown」として報告されます。ブロックはネイティブコードとJavaScriptコードのどちらでも発生する可能性があるため、ツールで自動的に言語を判断することはできません。
  • APP_VERSION - クラッシュしたアプリのバージョン。例:1.2.3または2024.11.15
  • OS_BUILD_NUMBER - ACRファイルが生成されたOSのビルド番号。例:1001010003820
  • BUILD_VARIANT - ACRファイルが生成されたビルドのタイプ。報告される値は、user、userdebug、user-externalのいずれかです。

OS release file

ACRファイルによって収集された/etc/os-releaseの内容が含まれています。この情報を使用して、クラッシュが発生した正確なOSバージョンとビルド構成を確認できます。これは、問題を再現したり、クラッシュがOS固有の問題かどうかを判断したりする場合に役立ちます。

Symbolicated stacktraces

このセクションには、クラッシュの原因となった関数呼び出しの正確な位置とシーケンスを示すデコードされたスタックトレースが含まれます。 このセクションに表示されるスタックトレースは、クラッシュが発生した言語によって決まります。
  • JavaScriptのクラッシュ:JavaScriptのスタックトレースのみが表示されます。
  • ネイティブクラッシュ:デフォルトでは、ネイティブスタックトレースのみが表示されます。

スタックフレームの解読

「スタックトレース」は、クラッシュを引き起こした一連の関数呼び出しを示します。トレースの各行は「スタックフレーム」と呼ばれます。 ネイティブスタックフレームには、フレーム番号、メモリアドレス、ライブラリ名が含まれます。デバッグシンボルがある場合は、フレームに関数名、ソースファイル、行番号も表示されます。
JavaScriptスタックフレームには、関数名、ソースファイル、行番号が含まれます。

スタックトレースの??について

スタックフレームに??が表示される場合は、そのメモリアドレスに位置する関数名をシンボリケーションツールで解決できなかったことを示します。これは通常、デバッグシンボルのないOSレベルのコードまたはシステムライブラリのコードです。
??のあるフレームは、アプリ内のバグではありません。これらは、エクスポートされたデバッグシンボルなしで動作するシステムコードを表します。アプリのファイルパスと関数名が表示されているフレームを重点的に確認してください。 クラッシュの発生元がアプリのコードとAmazonのコードのどちらにあるかを判断するには、アプリがクラッシュする原因を検出する方法を参照してください。

ローメモリキラー(LMK)クラッシュ

LMKクラッシュでは、プロセスの内部でクラッシュが発生するのではなく、OSによって外部からプロセスが強制終了されるため、スタックトレースは生成されません。Symbolicated stacktracesセクションが空で、CRASH_REASONがLMKを示している場合は、このセクションをスキップし、代わりにSystem Infoでメモリの圧迫データを確認してください。

System info

このセクションには、クラッシュ時にACRファイルに記録されたシステム情報が表示されます。次の情報が含まれます。
  • セクションから、メモリ消費量の多い上位5つのプロセス 例:アプリが250MBを使用していて上位5つに含まれる場合、メモリの圧迫が要因となっている可能性があります。
  • セクションから、圧迫情報の統計 例:メモリの圧迫値が高い場合、システムで使用可能なメモリが不足していたことを示します。

Native stacktrace - all threads

このセクションには、すべてのスレッドのネイティブスタックトレースが表示されます。このトレースは、対話型のGDBセッションでthread apply all btを実行することで生成できます。

例

以下は、レンダリングされていないACR summaryの例です。

トラブルシューティング

ACR分析やシンボリケーションで問題が発生した場合は、クラッシュ分析に関する問題の修正を参照してください。

関連トピック


最終更新日 2026年10月26日