使用Vega Studio调试应用崩溃
使用Vega Studio,对于在Fire TV Stick(设备)或Vega虚拟设备(模拟器)上运行的应用,您可以收集和分析应用的聚合崩溃报告 (ACR)。该过程包括复制ACR和符号化ACR。您可以收集和分析适用于Vega的React Native应用和Turbo模块的报告。
关于ACR
ACR是当您的应用在Fire TV设备或Vega虚拟设备模拟器上发生崩溃时自动生成的文件。ACR包含原始崩溃数据,包括内存地址、堆栈跟踪和系统信息。设备或模拟器以二进制格式存储发生崩溃时的这些数据。Vega同时为适用于Vega的React Native应用和原生Turbo模块而生成ACR。要有效地分析崩溃问题,您需要执行以下操作:
- 从您的设备或模拟器复制ACR。
- 对ACR进行符号化,以便将内存地址转换为可读的代码引用。
先决条件
- 您的应用崩溃时生成的ACR文件。
- 调试符号或源映射(取决于代码类型)。
-
如果在Ubuntu 22.04或更高版本上开发,请在计算机上安装
libpython3.8:sudo add-apt-repository ppa:deadsnakes/ppasudo apt updatesudo apt install libpython3.8-dev -
已安装Binutils:
在Mac上,运行:
brew install binutils按照屏幕上的指示进行操作。
在Ubuntu上,运行:
sudo apt install binutils
复制ACR
-
将目标设备连接到计算机。
Vega在侧边栏中显示连接的设备。如果您看不到自己的设备,请单击Refresh devices(刷新设备)按钮。如果您尚未连接设备,Vega会默认选择Vega虚拟设备。
-
从侧边栏中选择所需的目标设备。
-
在VS Code中打开命令面板:
- 对于Mac,使用shift + command ⌘ + p
- 对于Linux, 使用Ctrl + Shift + P
-
输入Vega Device Management: Copy ACR from device。
-
输入应用的程序包ID
或设备或模拟器中的进程ID。可以在manifest.toml的
[package]部分找到这些信息。package id识别您的应用,而process id识别运行您的应用的特定进程。 -
如果系统发现多个ACR,您有以下两种选择:
- 选择All(全部)以下载所有可用的ACR。
- 选择latest(最新)仅下载最新的ACR。
使用确定的进程ID或程序包ID以及您选择的ACR选项继续下载。
-
将ACR保存到您的首选文件夹。
对ACR进行符号化
当您的应用崩溃时,系统会生成一个包含内存地址和堆栈跟踪的ACR。这些跟踪数据很难读取,因为它们仅显示内存位置而不是实际的代码引用。
符号化指的是将这些不知含义的内存地址转换为清晰易懂的信息,从而向您显示发生崩溃的确切文件和行号。
示例:
符号化之前: 0x7ff8123456ab
符号化之后:my_function.ts:42
启动符号化
-
在VS Code中打开命令面板:
- 对于Mac,使用shift + command ⌘ + p
- 对于Linux, 使用Ctrl + Shift + P
-
输入Vega Device Management: Symbolicate ACR,然后按回车键。
-
选择您的ACR文件。
选择符号化选项
Vega Studio提示您选择符号化选项。但在选择符号化选项之前,请检查您的package.json以验证构建配置。如果您使用自定义逻辑而不是react-native build-kepler来生成JS Hermes字节码捆绑包或JS源映射,请按照以下步骤操作:
- 转到选项2: 手动符号化。
-
确保Metro生成的文件遵循以下命名规范:
- JS纯文本捆绑包:index.bundle
- JS源映射:*.bundle.map
在自动和手动符号化选项之间进行选择
选项1: 自动符号化
Vega Studio无需您输入内容即可收集所有必需的配置参数。完成后,终端中会出现一个符号化的调用堆栈。对于原生代码,GDB调试会话会自动打开。
- 等待Vega Studio收集参数。
-
如果系统提示输入缺失的参数:
- 仔细阅读请求。
- 输入所需的信息。
- 单击Continue(继续)。
例如,在自动原生符号化过程中,如果没有设备连接,系统会提示您提供
debug rootfs。 -
查看结果:
- 检查终端中的符号化调用堆栈。
- 对于原生代码,GDB调试会话会自动打开。
-
查看ACR:
-
对于原生代码: 当您关闭GDB调试会话时,系统会自动生成ACR报告。
-
对于JavaScript代码: 系统会自动生成ACR报告。
-
Vega Studio会自动打开ACR报告,并显示经过处理的信息,以帮助您诊断崩溃原因。
-
选项2: 手动符号化
在手动模式下,Vega Studio会分析您的ACR,以检测代码类型:
-
等待代码类型检测:
- 仅限原生代码 - 启动原生工作流程。
- 混合(原生代码和JavaScript代码)- 提示您选择解码类型。
在gdb和js解码类型之间选择 -
选择解码类型(如果系统检测到混合代码类型)。
选项1:gdb(原生模式)- 对原生调用堆栈进行符号化。
如果这是您的解码类型,请参阅原生模式以了解其他步骤。
选项2:js(JavaScript模式)- 对JavaScript调用堆栈进行符号化。
如果此选项是您的解码类型,请参阅JavaScript模式以了解其他步骤。
原生模式
-
选择符号源:
如果您的设备连接:
- device - 从连接的设备中提取符号和库。
- debug rootfs - Vega Studio提示您提供
debug rootfs。
如果您的设备没有连接,则必须在收到提示时提供
rootfs位置。注意: debug rootfs是一个Linux文件系统版本,带有用于对应用进行故障排除的调试符号。
向符号化进程添加调试符号文件夹 -
添加其他调试符号文件夹:
2.1. 选择Yes(是)以添加文件夹。
2.2. 选择文件夹位置。
2.3. 重复上述操作或单击No(否)即可完成。
终端输出中的符号化调用堆栈 -
查看结果:
3.1. 查找终端中的符号化调用堆栈。
3.2. 使用GDB调试会话。
-
查看ACR:
当您关闭GDB调试会话时,系统会生成ACR并在Vega Studio中打开。报告包含经过处理的崩溃信息,可帮助您诊断问题。
JavaScript模式
-
提供源映射。
1.1. 等待源映射提示。
1.2. 出现提示时,单击Browse(浏览)。
1.3. 导航到项目文件夹。
1.4. 选择
index.bundle.map。 -
添加其他映射(可选)。
2.1. 出现提示时,选择Yes(是)以添加更多映射。
2.2. 选择映射文件位置。
2.3. 重复上述操作或选择No(否)即可完成。
带有源映射的JavaScript符号化结果 - 查看终端中的符号化调用堆栈。
-
查看ACR。
系统会生成ACR报告并自动在Vega Studio中打开。报告包含经过处理的崩溃信息,可帮助您诊断问题。
常见的ACR问题
如果您在分析ACR时遇到问题,请参阅修复崩溃分析问题。
相关主题
Last updated: 2025年11月3日

