as

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

使用Vega Studio执行逐行调试

使用Vega Studio执行逐行调试

学习如何通过GDB(GNU调试器)使用Vega Studio对Vega应用和Turbo模块进行调试。Vega Studio内置调试功能,使用GDB进行原生代码调试,让您可以检查正在运行的程序、设置断点和逐步执行代码。Turbo模块是可扩展React Native功能的原生代码组件。

如需进行Chrome DevTools调试,请参阅使用Chrome DevTools进行应用分析

先决条件

在使用Vega Studio调试应用之前,请先完成这些设置要求,以确保您的开发环境和目标设备已正确配置。

  1. (可选)查看VS Code调试文档(仅提供英文版)。

  2. (可选)了解GDB(GNU调试器)(仅提供英文版)。

  3. 选择您的调试目标: Vega虚拟设备或Fire TV Stick。

  4. 为您的目标启用开发者模式:

    Vega虚拟设备

    1. 打开VS Code。
    2. 从活动栏中选择Vega Studio extension(Vega Studio扩展)图标。
    3. 导航到Devices(设备)。
    4. 启动Vega虚拟设备。
    5. 打开终端,然后运行:

    已复制到剪贴板。

    kepler exec vda shell vsm developer-mode enable
    

    Fire TV Stick

    1. 通过USB将您的Fire TV Stick连接到您的开发计算机。
    2. 按照在Fire TV Stick上运行您的应用中的说明启用开发者模式。

配置Vega Studio调试器

设置调试配置,以指定Vega Studio应如何启动并连接到您的应用。您可以使用自动配置进行快速设置,也可以将手动配置用于自定义调试场景。

自动配置

  1. 打开您的项目文件或从侧边栏中选择。
  2. 从VS Code活动栏中选择运行和调试

    VS Code活动栏高亮显“运行和调试”图标
    VS Code活动栏中的“运行和调试”选项
  3. 选择调试器类型:

    • Vega: 对于适用于Vega的React Native应用(JavaScript/TypeScript代码)
    • Vega Native: 对于Turbo模块(原生C++ 代码)
    VS Code的“运行和调试”面板显示自动调试配置下拉菜单
    自动调试配置

    调试器连接到正在运行的应用。

  4. 按照调试您的应用中的步骤进行操作。

手动配置

  1. 转到VS Code活动栏上的运行和调试
  2. 点击创建launch.json文件
  3. 从提示中选择一个项目(如果您只有一个项目,请跳过)。
  4. 选择调试器类型:

    • Vega: 对于适用于Vega的React Native应用(JavaScript/TypeScript代码)
    • Vega Native: 对于Turbo模块(原生C++ 代码)

Vega Studio按照默认配置创建一个launch.json文件。

指定您的目标设备

有多个设备连接时,通过设置deviceId属性来指定目标设备:

  • "${command:kepler.state.getSelectedDeviceId}" - 使用从侧边栏中选择的设备
  • "KeplerVirtualDevice" - 专门针对Vega虚拟设备
  • 设备序列号 - 针对特定的物理设备

向launch.json添加配置

要向现有的launch.json文件添加其他配置,请执行以下操作:

  1. 打开应用的launch.json文件。
  2. 选择Add Configuration(添加配置)按钮。
  3. 从可用选项中选择所需的启动目标。
  4. 保存您的更改。

    带有Add Configuration(添加配置)按钮和可用启动目标的VS Code launch.json配置面板
    向launch.json添加调试配置

设置断点

单击代码编辑器行号旁边距的左边距即可在应用中创建断点。

VS Code编辑器在行号旁边的左边距显示红色断点点
在VS Code编辑器中设置断点

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)

示例配置

适用于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"]
        }
    ]
}

配置片段

名称 描述 使用情况
(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虚拟设备上进行调试

  1. 从侧边栏中选择Virtual Device(虚拟设备)。
  2. 转到运行和调试
  3. 从下拉列表中选择 (script) Launch配置。
  4. 单击play(播放)图标或按F5

Vega Studio在Vega虚拟设备上打包、加载和执行您的应用。当执行命中断点时,VS Code进入调试模式并显示调试工具栏。

VS Code调试界面显示调试控制台、变量面板和代码编辑器中的断点命中情况
VS Code调试模式,调试工具栏和控制台处于活动状态

在Fire TV Stick上调试

  1. 选择Fire TV Stick作为目标。
  2. 转到运行和调试
  3. 从下拉列表中选择 (script) Launch配置。
  4. 单击play(播放)图标或按F5

Vega Studio在Fire TV Stick上打包、加载和执行您的应用。当执行命中断点时,VS Code进入调试模式并显示调试工具栏。

调试工具栏操作

调试工具栏包含可以在调试会话期间执行的操作。

VS Code调试工具栏显示“继续”、“步过”、“步入”、“跳出”、“重启”和“停止调试”按钮
用于逐步执行代码的调试工具栏控件
操作 描述
继续/暂停 继续执行到下一个断点或暂停当前执行
步过 执行下一个方法但不输入其详细信息
步入 输入下一个方法以逐行调试
跳出 完成当前方法并返回给调用者
重新开始 使用当前配置重新启动调试会话
停止 终止调试会话

故障排除

有关调试问题,请参阅修复调试问题


Last updated: 2025年11月5日