一、基础利器:pdb 核心操作
import pdb
def buggy_function(x):
result = 0
pdb.set_trace() # 手动插入断点
for i in range(x):
result += i/(x-5) # 当x=5时引发除零错误
return result
# 调试命令示例:
# n(ext)执行下一行 / c(ontinue)恢复执行
# l(ist)查看上下文 / p x 打印变量值
二、可视化调试:IDE降维打击
- VSCode:右键启动调试,变量面板实时监控
- PyCharm:条件断点 + 表达式评估(Alt+F8)
- Jupyter:魔术命令
%debug回溯错误现场
三、自动化追踪:PySnooper 极简日志
import pysnooper
@pysnooper.snoop(depth=2)
def complex_calculation(data):
# 自动记录每行变量变化
return [x*2 for x in data if x%3==0]
四、性能调优:从cProfile到火焰图
# 定位耗时函数
python -m cProfile -s cumtime my_script.py
# 生成火焰图
pip install py-spy
py-spy record -o profile.svg -- python slow_app.py
五、高阶技巧:异常现场取证
import sys
from pdb import post_mortem
def main():
try:
risky_operation()
except:
post_mortem(sys.exc_info()[2]) # 进入异常发生时的堆栈
# 调试命令扩展:
# u(p)/d(own)切换堆栈层 / ! 执行Python语句
调试的本质是代码与开发者的深度对话。掌握从基础断点到性能剖析的系统方法,不仅能快速歼灭BUG,更能深刻理解程序运行逻辑。当print不再满足需求时,这些专业工具将成为你技术进阶的关键加速器。
Python调试技巧:从pdb到火焰图
1万+

被折叠的 条评论
为什么被折叠?



