171、print 调试的终结:为什么 pdb 比 print 快 10 倍定位问题
171、print 调试的终结:为什么 pdb 比 print 快 10 倍定位问题上周五晚上十一点,线上告警突然炸了。用户反馈某个订单状态一直卡在“处理中”,数据库里查了一圈没发现异常。我习惯性地在关键函数里塞了七八个 print,跑了一遍本地复现——输出结果密密麻麻,眼睛都快看花了。折腾了半小时,才发现是某个条件分支里少了个 else 处理。第二天跟同事复盘,他说:“你还在用 print 调试?试试 pdb,十分钟就能搞定。”当时我不信,觉得 print 多直观啊,哪里不对打哪里。直到我真正花了一个下午把 pdb 用熟,才发现自己之前浪费了多少时间。今天这篇笔记,就是想聊聊为什么 pdb 比 print 快那么多,以及怎么从 print 调试平滑过渡到 pdb。一个真实的调试噩梦先还原一下那个让我崩溃的场景。代码大概长这样:defprocess_order(order_id):# 这里踩过坑:order_id 可能是字符串也可能是数字