遇到错误后ipdb继续

2024-10-03 21:35:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用ipdb调试器的方式如下:

ipython --pdb bugged.py

在一个文件上窃听器.py

^{pr2}$

然后,调试器会在错误的行中启动;这是预期的行为:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
/home/jrlab/Desktop/Current/debug_ipython/bugged.py in <module>()
      2 
      3 a = np.array([0, 1, 2])
----> 4 print(a[5])
      5 a = 2 + a
      6 print(a)

IndexError: index 5 is out of bounds for axis 0 with size 3
> /home/jrlab/Desktop/Current/debug_ipython/bugged.py(4)<module>()
      2 
      3 a = np.array([0, 1, 2])
----> 4 print(a[5])
      5 a = 2 + a
      6 print(a)

ipdb> n
~/Desktop/Current/debug_ipython>

但我真正希望的是,当我按下n时(或任何其他命令),继续执行下一条指令,也就是说,一旦我用手动修复,我就能够继续运行脚本!命令执行故障线路。在

有办法吗?在

编辑

1:我希望在脚本需要很长时间运行的情况下使用这种行为;我希望能够在修复脚本中间的一个小错误时继续执行,而不需要从头开始执行耗时的重新运行。在

他说:我知道这个错误是什么,我知道怎么解决它。有缺陷的代码只是为了说明我想要的行为(例如,如果我想的话,在打印之后恢复代码(a[5])。在


Tags: pydebug脚本home错误ipythoncurrent调试器
1条回答
网友
1楼 · 发布于 2024-10-03 21:35:47

你得到一个错误,因为有问题的行试图访问一个只包含3的数组的第6个元素。在

通常,Python调试器允许跳过有问题的行,ipython不确定。但在我的标准安装中,我可以:

j 5
n

j 5设置出错行之后的当前行,n成功地执行了它。在

相关问题 更多 >