Python调试工具pdb中如何退出调试并从出错处继续运行?
大致结构如下,希望进入 pdb 调试后,可以从出错处继续运行,有什么办法吗?
def main():
# ...
def test(func):
import sys
import traceback
import pdb
try:
func()
except Exception:
type, value, tb = sys.exc_info()
traceback.print_exc()
pdb.post_mortem(tb)
if name == ‘main’:
test(main)
Python调试工具pdb中如何退出调试并从出错处继续运行?
2 回复
用c命令继续运行到下一个断点或程序结束,用q直接退出调试。
如果你在调试时遇到异常,想从出错的地方继续执行,可以:
- 先用
pdb.post_mortem()进入异常后的调试状态 - 修改变量或状态
- 用
c继续执行
示例:
import pdb
def faulty_func():
x = 1
y = 0
return x / y # 这里会除零错误
try:
faulty_func()
except:
pdb.post_mortem() # 进入调试
# 调试时你可以修改变量,比如执行 `y = 1`
# 然后输入 `c` 继续运行
总结:异常后用post_mortem调试,修完问题按c继续。
试试 set_trace() ?

