ACR概要レポートを解釈して使用する方法
集約クラッシュレポート(ACR)の概要は、すべてのクラッシュデバッグデータを1つのマークダウンファイルにまとめたものです。このツールは、各シンボリケーションの最後に自動的にレポートを生成します。
前提条件
- Vegaアプリから生成されたクラッシュファイル(.acr)が必要です。
- Vega Studioがインストールされ、構成されている必要があります。
- Vega Studioを使用してアプリのクラッシュをデバッグする方法を読んで、ACRファイルとそのデータについて理解します。
概要レポートの使用方法
Vega Studioは、シンボリケーションが完了すると、自動的に概要レポートを新しいタブとして表示します。レポートは、Vega Studio内でファイルプレビューとして開かれます。
レポートが開き、次の作業を行います。
- Metadataセクションを確認して、クラッシュコンテキスト(プロセス、理由、言語)を理解します。
- Symbolicated stacktracesを調べて、クラッシュした場所を特定します。
- System infoを調べて、クラッシュ時のメモリ使用量とシステム状態を確認します。
- ソースコードと相互に参照して問題を診断します。
レポートの構造
以下のセクションでは、レポートの構成要素と、それぞれに含まれる情報について説明します。
ファイルヘッダー
ACRファイルのファイルパスと、関連する一時作業ディレクトリのパスが含まれます。
Metadata
このセクションには、ACRファイルから関連するメタデータが含まれます。
-
PROCESS - クラッシュしたプロセス。
-
CRASH_REASON - クラッシュの理由。
-
CRASH_LANG - クラッシュしたコードのプログラミング言語。報告される値は、 Native、JavaScript、unknownのいずれかです。ANRの場合、クラッシュしたスレッドIDがJavaScriptスレッドIDと一致すると、ACRファイルには「Unknown」が報告されます。これは、クラッシュがネイティブコードとJavaScriptコードのどちらに起因するか特定できないことを示します。
-
APP_VERSION - クラッシュしたアプリのバージョン。
-
OS_BUILD_NUMBER - ACRファイルが生成されたOSのビルド番号。
-
BUILD_VARIANT - ACRファイルが生成されたビルドのタイプ。報告される値は、user、userdebug、user-externalのいずれかです。
OS release file
ACRファイルによって収集された/etc/os-releaseの内容が含まれています。
Symbolicated stacktraces
このセクションには、クラッシュの原因となった関数呼び出しの正確な位置とシーケンスを示すデコードされたスタックトレースが含まれます。
このセクションに表示されるスタックトレースは、クラッシュが発生した言語によって決まります。
-
JavaScriptのクラッシュ: JavaScriptのスタックトレースのみが表示されます。
-
ネイティブクラッシュ: デフォルトでは、ネイティブスタックトレースのみが表示されます。
すべてのスレッドトレースを表示するには、GDBセッションでthread apply all btを使用してください。
System info
このセクションには、クラッシュ時にACRファイルに記録されたシステム情報が表示されます。次の情報が含まれます。
-
<meminfo>セクションから、メモリ消費量の多い上位5つのプロセス -
<pressure_info>セクションから、圧迫情報の統計
Native stacktrace - all threads
このセクションには、すべてのスレッドのネイティブスタックトレースが表示されます。このトレースは、対話型のGDBセッションでthread apply all btを実行することで生成できます。
例
次の例は、レンダリングされていない概要レポートの構造を示しています。
# Acr-report summary report
Path to ACR file: [/Users/fkvelasq/callie-test.acr](./crashfile)
Path to acr_workdir: /Users/fkvelasq/acr_workdir-c4bcb13c
## Metadata
PROCESS: /usr/bin/eventmgrd
CRASH_REASON: SIGABRT
CRASH_LANG: Native
APP_VERSION: N/A
OS_BUILD_NUMBER: 1001010003820
BUILD_VARIANT: user
PRODUCT_NAME: callie
BUILD_FINGERPRINT: 4.0.137942.0(3072cab629675a74)/38N:user/release-keys
OE_VERSION: 4.0.0
## OS release file
NAME="OS"
OE_VERSION="4.0.0"
OS_MAJOR_VERSION="1"
OS_MINOR_VERSION="1"
RELEASE_ID="10"
OS_VERSION="1.1"
BRANCH_CODE="TV Ship"
BUILD_DESC="OS 1.1 (TV Ship/38)"
BUILD_FINGERPRINT="4.0.137942.0(3072cab629675a74)/38N:user/release-keys"
BUILD_VARIANT="user"
BUILD_TAGS="release-keys"
BUILD_DATE="Fri Jul 25 01:48:20 UTC 2025"
BUILD_TIMESTAMP="1753408100"
VERSION_NUMBER="1001010003820"
## Symbolicated stacktraces
### Native stacktrace
<details open>
<summary> Expand to see native stacktrace </summary>
<pre>
#0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
#1 0xb6877d98 in __GI___ioctl (fd=-4, request=3224396289) at ../sysdeps/unix/sysv/linux/ioctl.c:35
#2 0xb67544ba in binder_call_internal (runtime=0xf8a2c8, target=<optimized out>, code=<optimized out>, request=<optimized out>, response=0xb2d32cd8) at /usr/src/debug/app-framework-neocoreipc/ssot-r0/app-framework-neocoreipc/cargo-project/api/runtimes/binder/direct/binder.c:1057
#3 0xb6754548 in binder_call (runtime=<optimized out>, target=<optimized out>, code=<optimized out>, request=<optimized out>, response=0xb2d32cd8) at /usr/src/debug/app-framework-neocoreipc/ssot-r0/app-framework-neocoreipc/cargo-project/api/runtimes/binder/direct/binder.c:1082
#4 0xb6754d3c in ipcn_runtime_call (runtime=<optimized out>, remote_handle=<optimized out>, code=<optimized out>, request=<optimized out>, reply=reply@entry=0xb2d32cd8) at /usr/src/debug/app-framework-neocoreipc/ssot-r0/app-framework-neocoreipc/cargo-project/api/runtimes/binder/direct/ipcn_runtime_binder.c:235
#5 0xb67569a6 in ipcn_call (runtime=0xf8a2c8, target=<optimized out>, code=<optimized out>, request=<optimized out>, reply=0xb2d32cd8) at /usr/src/debug/app-framework-neocoreipc/ssot-r0/app-framework-neocoreipc/cargo-project/api/core/ipcn_call.c:103
#6 0xb1be0418 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
関連トピック
- Vega Studioを使用してアプリのクラッシュをデバッグする方法
- クラッシュ分析に関する問題の修正
- Chrome DevToolsを使用してパフォーマンスを測定する方法
- Charles Proxyによるネットワークトラフィックのモニタリング
Last updated: 2025年12月22日

