- 发生崩溃的内存地址
- 示出导致崩溃的调用层次结构的堆栈跟踪
- 系统信息(包括设备状态和应用版本)
- 需要符号化才能变为可读状态的原始崩溃数据
0x7ff8123456ab的晦涩内存地址转换为类似my_function.ts:42的可读代码引用),以查明应用崩溃的确切位置和原因。
先决条件
- 您的应用崩溃时生成的ACR文件。
- 调试符号或源映射(取决于代码类型)。
-
如果在Ubuntu 22.04或更高版本上开发,请在计算机上安装
libpython3.8: -
已安装Binutils:
在Mac上,运行:
按照屏幕上的指示进行操作。 在Ubuntu上,运行:
复制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
package id或设备或模拟器中的进程IDprocess id。 可以在manifest.toml的[package]部分找到这些信息。package id识别您的应用,而process id识别运行您的应用的特定进程。 -
如果系统发现多个ACR,您有以下两种选择:
- 选择All(全部)以下载所有可用的ACR。
- 选择latest(最新)仅下载最新的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位置。
-
添加其他调试符号文件夹:
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中打开。报告包含经过处理的崩溃信息,可帮助您诊断问题。

