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