Python自带pdb模块实现断点调试,推荐Python 3.7+用breakpoint(),旧版用import pdb; pdb.set_trace();常用命令包括n、s、c、l、p、pp、q、h;支持命令行python -m pdb启动、条件断点及栈帧导航。

在 Python 中用 pdb 实现断点和单步调试,核心是插入断点、启动交互式调试器、通过命令控制执行流程。不需要额外安装,Python 自带 pdb 模块。
在代码中设置断点
最常用的方式是在想暂停的位置插入 import pdb; pdb.set_trace()(Python 3.7+ 推荐用 breakpoint()):
-
Python 3.7 及以上:直接写
breakpoint(),它会自动调用pdb.set_trace(),且支持环境变量PYTHONBREAKPOINT自定义调试器 -
旧版本或需显式控制:写
import pdb; pdb.set_trace(),放在你想暂停的行上方
例如:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
def calculate(x, y):
result = x + y
breakpoint() # 程序运行到这里会暂停
return result * 2
常用调试命令(进入 pdb 后输入)
程序暂停后,终端变成 (Pdb) 提示符,可输入以下命令控制执行:
- n(next):执行下一行,不进入函数内部
- s(step):单步进入,遇到函数会跳进其第一行
- c(continue):继续运行直到下一个断点或程序结束
- l(list):列出当前附近源码(默认显示 11 行)
-
p 变量名:打印变量值,如
p result - pp 表达式:美化打印(适合字典、列表等复杂结构)
- q(quit):退出调试器,终止程序
-
h(help):查看帮助,
h s查看 step 的说明
命令行启动并指定断点位置
不修改源码也能调试:
- 运行时加
-m pdb:例如python -m pdb script.py,启动后自动停在第一行 - 用
b 行号命令设断点,比如b 10在第 10 行设断点;b function_name在函数入口设断点 - 用
bt查看当前调用栈,u/d在栈帧间上下移动
实用技巧与注意事项
- 多次使用
breakpoint()可设多个断点,程序会依次暂停 - 调试时可直接输入表达式求值(如
x + 1),结果立即显示 - 避免在循环内频繁断点,否则要按很多次
c;可用条件断点:break 15, x > 100(第 15 行且 x > 100 时才中断) - 调试完记得删掉
breakpoint()或用if False: breakpoint()临时禁用 - IDE(如 VS Code、PyCharm)底层也调用 pdb,图形界面更直观,但掌握命令行命令有助于远程或无界面环境调试
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










