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直接退出调试。

如果你在调试时遇到异常,想从出错的地方继续执行,可以:

  1. 先用pdb.post_mortem()进入异常后的调试状态
  2. 修改变量或状态
  3. 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() ?

回到顶部