跳转到内容
返回首页
Tutorial

在 Android 上调试 JavaScript:断点、单步执行与调用栈

在 Android 手机上调试 Node.js 代码:断点、条件断点和日志点、单步执行、变量、调用栈 和热重载——以及调试器目前还做不到的事。

更新于:
1 min
作者 Pelayo Naredo
在 Android 上调试 JavaScript:断点、单步执行与调用栈

在 Android 上调试 JavaScript:断点、单步执行与调用栈

PocketCode 内置的调试器直接在你的 Android 设备上运行,就在你正在运行的代码 旁边。本文如实说明它现在能做什么、不能做什么。

为 Node.js 提供的真实调试

打开一个 JavaScript 文件(.js、.mjs、.cjs 或 .jsx)并选择 调试(外接物理键盘时为 Shift + F5)。 PocketCode 会以检查器模式启动 Node.js,并通过 Chrome DevTools Protocol 连接它,因此 下面的一切都作用于你手机上真实运行的 Node 进程:

  • 暂停 — 程序会在第一行、在你的断点处,以及抛出未被捕获的异常时停下
  • 继续、单步跳过 / 进入 / 跳出 — 按行、按调用或按返回逐步执行代码
  • 暂停、重启、停止 — 直接控制调试会话;重启会在调试器下重新运行该文件
  • 变量 — 顶层帧局部值的平铺列表(对象不可展开,也看不到其他帧的变量)
  • 调用栈 — 通向当前位置的帧链;选择另一个帧只会跳到它所在的行
  • 控制台 — 会话事件与程序自身的输出一起显示

断点、条件断点和日志点

点按行号即可设置断点:行号栏会出现一个红点,再点一次即可移除。程序在那里停下时, 该行会高亮显示。调试面板的 Breakpoints 标签页列出所有断点;你可以停用某个断点 (空心点),或用铅笔图标编辑它:

  • 条件 — 一个 JavaScript 表达式,例如 i > 10;只有表达式为真时程序才会暂停
  • 日志消息 — 把断点变成日志点:不暂停,而是向控制台写一行。把表达式放在花括号里 即可输出值:user = {user.name}, total = {total}。如果同时设置了条件,只在条件成立时 记录

程序运行期间添加、删除或修改的断点会立即生效,无需重启。

热重载

打开热重载(调试工具栏上的按钮,只在会话运行时显示,默认关闭)后,每次保存项目中的文件,会话都会用新代码 重启——不必先停止再重新调试。

其他语言

调试器仅适用于 Node.js 上的 JavaScript。对于其他任何文件(包括 TypeScript),调试只会直接运行它,并提示没有调试器支持,断点不起作用。 Python、Java 和其他语言没有单步调试器——对于它们,请把值打印到控制台并查看输出。

关于范围的坦诚说明

以下功能还没有,所以我们不会把它们当作已有功能来宣传:

  • 通过网络附加到远程主机,以及性能分析
  • 求值表达式:控制台里有一个「Evaluate expression」输入框,但它总是返回 undefined
  • 异常断点:调试器会在未捕获的异常处自动暂停,但你不能自己添加
  • 断点固定在行号上:如果在它上方插入新行,断点不会随代码移动,关闭应用后断点也不会保留
  • 停止只会断开调试器;进程本身由 Run 面板管理

断点、日志点、单步执行和变量,今天就能在手机上的真实 Node 中使用。

PocketCode 即将登陆 Google Play。加入预注册,成为第一批在自己设备 上体验它的人。

本文背后的工具

终端与 SSH

准备好试用 PocketCode 了吗?

下载应用,开始用手机编程。