使用Vega Studio调试应用崩溃
使用Vega Studio,对于在Fire TV Stick(设备)或Vega虚拟设备(模拟器)上运行的应用,您可以收集和分析应用的汇总崩溃报告 (ACR)。该过程包括复制ACR和符号化ACR。您可以收集和分析适用于Vega的React Native应用和Turbo模块的报告。
- 发生崩溃的内存地址
- 示出导致崩溃的调用层次结构的堆栈跟踪
- 系统信息(包括设备状态和应用版本)
- 需要符号化才能变为可读状态的原始崩溃数据
使用ACR进行崩溃调试适用于在Fire TV Stick设备或Vega虚拟设备模拟器上运行的适用于Vega的React Native应用和Turbo模块。
本页引导您从设备中复制ACR并对其进行符号化(将类似0x7ff8123456ab的晦涩内存地址转换为类似my_function.ts:42的可读代码引用),以查明应用崩溃的确切位置和原因。
先决条件
- 您的应用崩溃时生成的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
- 对于 Mac:
-
输入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
- 对于 Mac:
-
输入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代码)- 提示您选择解码类型。

-
选择解码类型(如果系统检测到混合代码类型)。
选项1:gdb(原生模式)- 对原生调用堆栈进行符号化。
如果这是您的解码类型,请参阅原生模式以了解其他步骤。
选项2:js(JavaScript模式)- 对JavaScript调用堆栈进行符号化。
如果此选项是您的解码类型,请参阅JavaScript模式以了解其他步骤。
原生模式

-
选择符号源:
如果您的设备连接:
- device - 从连接的设备中提取符号和库。
- debug rootfs - Vega Studio提示您提供
debug rootfs。
如果您的设备没有连接,则必须在收到提示时提供
rootfs位置。注意: debug rootfs是一个Linux文件系统版本,带有用于对应用进行故障排除的调试符号。
-
添加其他调试符号文件夹:
a. 选择Yes(是)以添加文件夹。
b. 选择文件夹位置。
c. 重复上述操作或单击No(否)即可完成。

-
查看结果:
a. 查找终端中的符号化调用堆栈。
b. 使用GDB调试会话。
-
查看ACR:
当您关闭GDB调试会话时,系统会生成ACR并在Vega Studio中打开。报告包含经过处理的崩溃信息,可帮助您诊断问题。
JavaScript模式
-
提供源映射。
a. 等待源映射提示。b.出现提示时,单击Browse(浏览)。c.导航到项目文件夹。d.选择
index.bundle.map。 -
添加其他映射(可选)。
a. 出现提示时,选择Yes(是)以添加更多映射。b.选择映射文件位置。c.重复上述操作,或者选择No(否)以完成。

-
查看终端中的符号化调用堆栈。
-
查看ACR。
系统会生成ACR报告并自动在Vega Studio中打开。报告包含经过处理的崩溃信息,可帮助您诊断问题。
常见的ACR问题
如果您在分析ACR时遇到问题,请参阅修复崩溃分析问题。
相关主题
Last updated: 2025年11月3日

