PDB 断点调试器 —— 在手机上单步执行代码
为什么需要调试器
print 语句是最简单的调试方法,但当逻辑复杂起来(多层嵌套循环、条件分支多、函数调用链长),print 就不够用了。你需要的是让代码执行到某一行停下,然后一行一行往下走,每一步都能看到变量值——这就是 PDB 调试器做的事。
在 Pydroid 里设置断点
Premium 版开启后,点击编辑器左侧行号 gutter 的某一行:
- 单击:在那行设置一个红点(断点)
- 再次点击:取消断点
- 可以同时设置多个断点
Run 之后 Pydroid 会先跑到第一个断点停下,底部弹出调试面板,显示当前行和变量状态。
调试面板功能
进入断点后底部面板变成调试模式,提供以下操作:
| 操作 | 作用 |
|---|---|
| Step Over (F10) | 执行当前行,不进入函数内部 |
| Step Into (F11) | 进入当前行调用的函数内部 |
| Step Out | 从当前函数退出,回到调用处 |
| Continue | 继续运行到下一个断点(或程序结束) |
| Watch | 添加变量名,观察它在单步过程中的值变化 |
使用场景举例
假设你写了一个排序函数,怀疑逻辑有 bug:
- 在排序循环的关键行设断点
- Run,程序停在断点上
- 用 Step Into 一步步看循环执行
- 用 Watch 观察待排序列表、当前索引、交换标记等变量的值
- 一步步走完整个排序过程,找到哪一步出了问题
- 修代码,重跑
这比在代码里加十几行 print 然后手动对照输出高效得多——尤其当循环跑几十次的时候。
免费版怎么调试
免费版没有断点调试器,只能用 print 语句辅助排查。但 Pydroid 的实时错误提示会在 Run 后直接把 traceback(异常堆栈)显示在输出面板里,告诉你哪一行报了什么错——这对于语法错误和基础逻辑错误已经够用了。Premium 的断点调试主要解决的是「没有抛异常但结果不对」的逻辑 bug。