为何以模块方式调用Python调试器pdb无法自动进入事后调试?
Python pdb 事后调试行为不符合文档描述的问题处理
- 官方文档描述:以模块方式调用pdb(如
python -m pdb myscript.py)时,若被调试程序异常退出,pdb应自动进入事后调试,调试完成后还会重启程序并保留状态。 - 实际测试现象:在RHEL 8、RHEL 9、Fedora 40(Python 3.12)及SLES 15 SP3(Python 3.6)环境中测试发现,直接执行
python -m pdb myscript.py时,pdb仅会在脚本第一行非注释代码处中断,无法触发预期的事后调试流程。 - 解决方法:必须添加
-c run或-c continue参数,执行如下命令之一:python -m pdb -c run myscript.pypython -m pdb -c continue myscript.py
这样就能让pdb在程序异常退出时自动进入事后调试,调试后也会按文档描述重启程序保留状态。
内容的提问来源于stack exchange,提问作者Spartan
相关产品推荐
相关产品推荐

