PDB 调试器断点不生效 —— 点了行号但没红点
前提:你是 Premium 用户
PDB 断点调试器是 Premium 专属功能。免费版用户在编辑器里点行号可能会有提示但不会真的设置断点。如果你还没升级 Premium,先在 App 内购页面完成购买。
点了行号但没出现红点
可能原因:
- 点的是空行或注释行:断点只能设在有可执行代码的行上,空行、注释、纯装饰行(
import xxx这类也是可执行的,可以设)可能被 Pydroid 跳过 - 代码还没保存:某些版本要求先保存文件再设断点,否则断点可能丢失
- 编辑器处于只读模式:某些 Samples 或从系统分享面板打开的文件是只读的,不能设断点
解决:
- 确保点的行上有可执行代码
- 先手动保存文件(Ctrl+S 或菜单 Save)
- 确认文件不是只读状态
Run 后没停在断点上
原因 1:脚本还没跑到断点就崩了
如果断点前面的代码有异常,脚本会直接崩溃不会走到断点。看输出面板的 traceback 确认一下——可能是前置的 import 失败、语法错误或其他运行时错误。
原因 2:断点设在了条件永远不满足的分支
比如你把断点设在 if False: 里面,那永远不会跑到——这是理所当然的。
原因 3:Pydroid 没开 Premium 功能
虽然你买了 Premium,但 App 内的 Premium 功能开关可能没打开。检查:Settings → Code analysis → 确认 Premium 相关选项已开启。
调试面板不弹出
设了断点、Run 后脚本停了,但底部没弹出调试面板——可能是:
- 面板被手动折叠了:尝试在底部边缘向上滑,把面板拉出来
- Run 后切换了输出模式:某些版本 Run 完后默认显示 stdout/stderr 面板,调试面板在旁边有 Tab 切换
免费版怎么调试
免费版没有断点调试器,只能用 print() 辅助:
def my_func(x):
print(f"DEBUG: x = {x}")
result = x ** 2
print(f"DEBUG: result = {result}")
return result
在关键路径上加 print 输出中间变量值,Run 之后看输出面板里的打印结果。虽然效率不如断点调试,但对于简单逻辑足够用了。