You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确使用pdb,确保先应用断点再执行代码

解决PDB先完整执行代码再触发断点的问题

问题场景

当前.pdbrc配置:

b 2
c

目标脚本code.py代码:

print('1st line')
print('2nd line')
print('3rd line')

执行python3 -m pdb code.py后,脚本会先完整执行一遍,再添加断点并重新执行到断点处,输出不符合预期。我们需要实现先设置断点,再开始执行代码,直接停在第2行,得到如下期望输出:

Breakpoint 1 at /Users/mypc/code.py:2
1st line
> /Users/mypc/code.py(2)<module>()
-> print('2nd line')
(Pdb) 

解决方法

方法1:启动时通过-c参数指定前置命令

直接在启动PDB时用-c参数传入断点和继续命令,让PDB先执行这些命令再启动脚本:

python3 -m pdb -c "b 2" -c "c" code.py

这种方式跳过了默认的模块导入执行流程,直接先设置断点再启动脚本执行,符合预期。

方法2:修改.pdbrc使用run命令替代c

将.pdbrc内容修改为:

b 2
run

原来的c命令是让PDB继续执行已经启动的模块导入过程(此时脚本顶层代码已经在运行),而run命令会重新启动脚本的执行流程,此时断点已提前设置好,启动后会直接执行到断点处,不会先跑完整脚本。

内容的提问来源于stack exchange,提问作者Rahul R Badenkal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:56:06