as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

阅读和使用ACR摘要报告

阅读和使用ACR摘要报告

“汇总崩溃报告”(ACR) 摘要将所有崩溃调试数据整理到一个markdown文件中。该工具会在每次符号化的末尾自动生成报告。

先决条件

  1. 来自您的Vega应用的崩溃文件 (.acr)。
  2. Vega Studio已安装并配置。
  3. 阅读使用Vega Studio调试应用崩溃,熟悉ACR文件及其数据。

如何使用摘要报告

符号化完成后,Vega Studio会自动将摘要报告显示为新选项卡。该报告在Vega Studio的文件预览中打开。

打开报告后:

  1. 查看Metadata部分,了解崩溃背景(进程、原因、语言)。
  2. 检查Symbolicated Stacktraces以确定崩溃位置。
  3. 查看System Info以查看崩溃时的内存使用情况和系统状态。
  4. 交叉引用您的源代码来诊断问题。

报告结构

以下各部分描述了报告的组成部分以及每个组成部分包含的信息。

文件头

包含ACR文件的文件路径和相关临时工作目录的路径。

Metadata(元数据)

该部分包含ACR文件中的相关元数据:

  • PROCESS - 崩溃的进程。

  • CRASH_REASON - 崩溃的原因。

  • CRASH_LANG - 崩溃代码的编程语言。可能的值: Native、JavaScript或Unknown。在发生ANR的案例中,当崩溃的线程ID与JavaScript线程ID相匹配时,ACR文件会报告“Unknown”,这表明崩溃可能源于原生代码或JavaScript代码。

  • APP_VERSION - 崩溃的应用版本。

  • OS_BUILD_NUMBER - 生成ACR文件时所用操作系统的内部版本号。

  • 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报告摘要报告

ACR文件路径:[/Users/fkvelasq/callie-test.acr](./crashfile)

acr_workdir的路径:/Users/fkvelasq/acr_workdir-c4bcb13c

## 元数据

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

## 操作系统发布文件

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"

## 符号化堆栈跟踪

### 原生堆栈跟踪

<details open>
<summary>展开以查看原生堆栈跟踪</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 ?? ()
回溯已停止:前一帧与此帧相同(堆栈损坏?)

Last updated: 2025年12月22日