Skip to content

深入调试:VS Code 断点调试指南 ​

console.log() 是快速检查的利器,但面对复杂逻辑,你需要更专业的武器:断点调试 (Debugger)。它能让代码在任意位置“暂停”,让你像侦探一样审查当时的每一个细节。

Warning

⚠️ 注意:目前暂不支持直接对神岛的内置 API (如 world.createEntity()) 进行断点。

调试前的核心概念:编译模式 ​

在启动调试前,你需要选择一种代码编译模式。这决定了你的代码如何被打包,以及调试的便捷程度。

编译模式特点推荐程度
HMR 编译自动监听文件变化并增量编译。支持直接在 .ts 文件上断点。⭐⭐⭐⭐⭐
强烈推荐
完整编译每次都重新打包所有代码。只能在编译后的 .js 文件上断点。⭐⭐
备用选择

结论:进行断点调试时,请始终使用 HMR 编译模式。

TypeScript 断点调试工作流 (HMR 模式) ​

这是最常用、最高效的调试流程。

1️⃣ 创建调试配置文件 (launch.json) ​

如果你是第一次在项目中进行调试,需要先生成一个 launch.json 文件来告诉 VS Code 如何启动。

  1. 点击 VS Code 左侧的“运行和调试”图标 (🐞)。

  2. 点击 “创建 launch.json 文件” 链接。

    创建 launch.json 文件

  3. 在弹出的列表中,选择一个调试类型。

    • ArenaPro Server Debugger:调试服务端代码 (server/)
    • ArenaPro Client Debugger:调试客户端代码 (client/)

    选择调试配置

    选择后,VS Code 会自动在 .vscode/launch.json 中为你生成配置。你可以通过右下角的“添加配置”按钮来新增更多调试类型。

2️⃣ 启动并配置 HMR ​

  1. 点击 VS Code 左下角的 HMR 编译 按钮,启动 HMR 服务。
  2. (推荐) 为了避免干扰,点击 HMR 旁边的“齿轮”图标,关闭“编译后自动上传”。 关闭上传功能
  3. (推荐) 点击“齿轮”图标,开启“调试器(debugger)模式”。 开启 debugger 模式

3️⃣ 设置断点并启动调试 ​

  1. 打开任意一个你想调试的 .ts 文件 (例如 server/App.ts)。
  2. 在代码行号的左侧单击,设置一个红点断点。
  3. 按下 F5 键 (或点击“运行和调试”侧边栏的绿色启动按钮),开始调试!

调试过程

当游戏逻辑执行到你的断点处,代码就会暂停,你可以在 VS Code 中查看所有变量的实时状态。

调试技巧与工具 ​

调试工具栏 ​

图标名称快捷键功能说明
▶️继续F5继续执行,直到下一个断点或程序结束。
↪️单步跳过F10执行当前行,若为函数则直接执行完,不进入内部。
⤵️单步调试F11执行当前行,若为函数则进入其内部。
⤴️单步跳出Shift+F11执行完当前函数,并跳出到调用它的地方。
🔄重启Ctrl+Shift+重新启动当前的调试会话。
⏹️停止Shift+F5结束本次调试。

断点类型 ​

断点类型使用场景设置方法
普通断点在特定代码行暂停执行点击代码行号左侧
条件断点仅在满足条件时暂停右键点击断点 → 编辑条件...
日志点不暂停,而是输出日志信息右键点击断点 → 添加日志消息...

调试侧边栏窗口 ​

窗口功能说明
变量查看和修改当前作用域中的变量值。
监视添加自定义表达式,持续监控其值的变化。
调用堆栈显示当前代码是如何被一层层调用至今的。
断点集中管理项目中设置的所有断点。

通过本教程,你已经掌握了在 ArenaPro 项目中使用 VS Code 进行断点调试的核心技巧。这将是你解决复杂问题、提升代码质量的强大武器。

神岛实验室