
172、pdb 深度运用:断点、条件、watch、post-mortem 与远程调试一个让我熬夜到凌晨三点的bug去年接手一个金融风控系统的维护任务,线上有个诡异的内存泄漏,每跑12小时就OOM。我翻遍了日志,加了无数print,愣是找不到根因。直到同事路过,丢下一句:“试试pdb的watch,别用print了。” 那一刻我才意识到,自己用了三年Python,连调试器都没玩明白。今天这篇笔记,就是那次教训后我系统梳理的pdb高阶用法。如果你还在用print大法,或者只会pdb.set_trace(),那这篇文章就是为你准备的。断点:不止是set_trace()硬断点 vs 软断点大多数人知道import pdb; pdb.set_trace(),这叫硬断点——代码里写死的。但线上环境你不可能改代码重启服务,这时候需要软断点。# 别这样写:每次调试完还要手动删importpdb;pdb.set_trace