使用Vega Studio执行逐行调试
学习如何通过GDB(GNU调试器)使用Vega Studio对Vega应用和Turbo模块进行调试。Vega Studio内置调试功能,使用GDB进行原生代码调试,让您可以检查正在运行的程序、设置断点和逐步执行代码。Turbo模块是可扩展React Native功能的原生代码组件。
如需进行Chrome DevTools调试,请参阅使用Chrome DevTools进行应用分析。
先决条件
在使用Vega Studio调试应用之前,请先完成这些设置要求,以确保您的开发环境和目标设备已正确配置。
-
(可选)查看VS Code调试文档(仅提供英文版)。
-
(可选)了解GDB(GNU调试器)(仅提供英文版)。
-
选择您的调试目标: Vega虚拟设备或Fire TV Stick。
-
为您的目标启用开发者模式:
Vega虚拟设备
- 打开VS Code。
- 从活动栏中选择Vega Studio extension(Vega Studio扩展)图标。
- 导航到Devices(设备)。
- 启动Vega虚拟设备。
- 打开终端,然后运行:
kepler exec vda shell vsm developer-mode enableFire TV Stick
- 通过USB将您的Fire TV Stick连接到您的开发计算机。
- 按照在Fire TV Stick上运行您的应用中的说明启用开发者模式。
配置Vega Studio调试器
设置调试配置,以指定Vega Studio应如何启动并连接到您的应用。您可以使用自动配置进行快速设置,也可以将手动配置用于自定义调试场景。
自动配置
- 打开您的项目文件或从侧边栏中选择。
-
从VS Code活动栏中选择运行和调试。
VS Code活动栏中的“运行和调试”选项 -
选择调试器类型:
- Vega: 对于适用于Vega的React Native应用(JavaScript/TypeScript代码)
- Vega Native: 对于Turbo模块(原生C++ 代码)
自动调试配置 调试器连接到正在运行的应用。
- 按照调试您的应用中的步骤进行操作。
手动配置
- 转到VS Code活动栏上的运行和调试。
- 点击创建launch.json文件。
- 从提示中选择一个项目(如果您只有一个项目,请跳过)。
-
选择调试器类型:
- Vega: 对于适用于Vega的React Native应用(JavaScript/TypeScript代码)
- Vega Native: 对于Turbo模块(原生C++ 代码)
Vega Studio按照默认配置创建一个launch.json文件。
指定您的目标设备
有多个设备连接时,通过设置deviceId属性来指定目标设备:
"${command:kepler.state.getSelectedDeviceId}"- 使用从侧边栏中选择的设备"KeplerVirtualDevice"- 专门针对Vega虚拟设备- 设备序列号 - 针对特定的物理设备
Copy device ID命令来获取确切的序列号。向launch.json添加配置
要向现有的launch.json文件添加其他配置,请执行以下操作:
- 打开应用的launch.json文件。
- 选择Add Configuration(添加配置)按钮。
- 从可用选项中选择所需的启动目标。
-
保存您的更改。
向launch.json添加调试配置
设置断点
单击代码编辑器行号旁边距的左边距即可在应用中创建断点。
launch.json属性
| 属性 | 描述 |
|---|---|
| type | 调试器类型:“Kepler”(React Native) 或“KeplerNative”(Turbo模块) |
| request | 请求类型:“launch”(启动新会话)或“attach”(连接到正在运行的应用) |
| name | 在调试下拉列表中显示名称 |
| keplerMode | 调试模式:“debug”(调试)或“release”(发布) |
| cwd | 工作区目录 |
| deviceId | 目标设备标识符 |
| forceRebuild | 启动前自动重建(默认值:false) |
| disableAppTimeout | 控制调试期间的ANR超时行为。如果为true(默认值),将禁用应用超时以防止在调试会话期间终止。如果为false,将启用正常的超时行为,这可能会终止已暂停的应用。有关详细信息,请参阅故障排除部分。 |
| enableDebug | 启动时连接调试器(默认值:true) |
disableAppTimeout属性用于控制生命周期管理器是否会终止无响应的应用。如果为true(默认值),LCM不会在调试期间终止应用,这样您就可以在断点处无限期地暂停。如果为false,LCM将正常运行并终止在超时时段内未响应的应用。示例配置
适用于Vega的React Native基础应用
{
"version": "0.2.0",
"configurations": [
{
"name": "(script) Launch",
"type": "kepler",
"request": "launch",
"keplerMode": "debug",
"cwd": "${workspaceFolder}",
"deviceId": "${command:kepler.state.getSelectedDeviceId}",
"disableAppTimeout": true,
"perf": {
"startActivityMonitoring": false
}
}
]
}
适用于Vega的React Native多设备应用
{
"version": "0.2.0",
"configurations": [
{
"name": "(script) Launch on selected device",
"type": "kepler",
"request": "launch",
"keplerMode": "debug",
"cwd": "${workspaceFolder}",
"deviceId": "${command:kepler.state.getSelectedDeviceId}",
"disableAppTimeout": true
},
{
"name": "(script) Launch on Vega Virtual Device",
"type": "kepler",
"request": "launch",
"keplerMode": "debug",
"cwd": "${workspaceFolder}",
"deviceId": "KeplerVirtualDevice",
"disableAppTimeout": true
}
]
}
混合React Native和Turbo模块调试
{
"version": "0.2.0",
"configurations": [
{
"name": "(script) Attach",
"type": "kepler",
"request": "attach",
"cwd": "${workspaceFolder}",
"deviceId": "${command:kepler.state.getSelectedDeviceId}"
},
{
"name": "(native) Attach",
"type": "keplerNative",
"request": "attach",
"cwd": "${workspaceFolder}",
"deviceId": "${command:kepler.state.getSelectedDeviceId}",
"debugger": "gdb"
}
],
"compounds": [
{
"name": "Hybrid Debugger",
"configurations": ["(native) Attach", "(script) Attach"]
}
]
}
compounds部分允许您同时运行多个调试配置,这对于同时调试React Native和原生代码很有用。配置片段
| 名称 | 描述 | 使用情况 |
|---|---|---|
| (script) Launch | 在所选设备上调试适用于Vega的React Native | 开始新的JavaScript/TypeScript代码调试会话 |
| (script) Launch - Perf | 在发布模式下启动并进行性能监控 | 性能分析(在Vega虚拟设备上不可用) |
| (script) Attach | 连接到正在运行的Vega应用以进行React Native调试 | 应用已经在运行,想调试JavaScript/TypeScript代码 |
| (native) Launch | 在所选设备上调试Turbo模块原生代码 | 启动新的会话以调试原生C++ 代码 |
| (native) Attach | 连接到正在运行的应用以进行原生代码调试 | 应用已经在运行,想调试原生C++ 代码 |
调试您的应用
配置调试器并设置断点后,开始在所选目标设备上调试应用。两种设备的调试过程相似,主要区别在于设备选择。
在Vega虚拟设备上进行调试
- 从侧边栏中选择Virtual Device(虚拟设备)。
- 转到运行和调试。
- 从下拉列表中选择 (script) Launch配置。
- 单击play(播放)图标或按F5。
Vega Studio在Vega虚拟设备上打包、加载和执行您的应用。当执行命中断点时,VS Code进入调试模式并显示调试工具栏。
在Fire TV Stick上调试
- 选择Fire TV Stick作为目标。
- 转到运行和调试。
- 从下拉列表中选择 (script) Launch配置。
- 单击play(播放)图标或按F5。
Vega Studio在Fire TV Stick上打包、加载和执行您的应用。当执行命中断点时,VS Code进入调试模式并显示调试工具栏。
调试工具栏操作
调试工具栏包含可以在调试会话期间执行的操作。
| 操作 | 描述 |
|---|---|
| 继续/暂停 | 继续执行到下一个断点或暂停当前执行 |
| 步过 | 执行下一个方法但不输入其详细信息 |
| 步入 | 输入下一个方法以逐行调试 |
| 跳出 | 完成当前方法并返回给调用者 |
| 重新开始 | 使用当前配置重新启动调试会话 |
| 停止 | 终止调试会话 |
故障排除
有关调试问题,请参阅修复调试问题。
相关主题
Last updated: 2025年11月5日

