Python 2.7 Python PDB调试器(在调试器中工作但不在SciTE中工作的代码)
我对Python PDB调试器和用SciTE编写的代码有问题 所以我有一个叫做“func”的类。这个类有一个名为“hermite”的方法。我正在使用PDB调试器来找出为什么我的程序在执行此方法时会冻结 我首先说:Python 2.7 Python PDB调试器(在调试器中工作但不在SciTE中工作的代码),python-2.7,vpython,Python 2.7,Vpython,我对Python PDB调试器和用SciTE编写的代码有问题 所以我有一个叫做“func”的类。这个类有一个名为“hermite”的方法。我正在使用PDB调试器来找出为什么我的程序在执行此方法时会冻结 我首先说: pdb.set_trace() func.hermite(a,b,c) 当我按“n”键转到调试器中的下一行时,程序冻结 如果我将pdb.set_trace()放入方法“hermite”中,我会得到: 现在在调试器中,该方法完全执行,没有任何问题 我不知道为什么调试器在调用该方法时会
pdb.set_trace()
func.hermite(a,b,c)
当我按“n”键转到调试器中的下一行时,程序冻结
如果我将pdb.set_trace()
放入方法“hermite”中,我会得到:
现在在调试器中,该方法完全执行,没有任何问题
我不知道为什么调试器在调用该方法时会冻结,但是当
set\u trace
放在程序运行正常的方法中。还有,在SciTE,没关系
如果将set_trace()
放在其中,则程序不会运行。因此,程序似乎只会运行
出于某种原因,从调试器中,在方法内部使用set_trace
你知道问题出在哪里吗?我会粘贴“hermite”的代码,但它很长。我想
重要的一点是,当set\u trace
位于方法内部时,它执行得非常好,但当set\u trace
位于方法外部时,它会冻结
更新:
不管怎样,我已经解决了这个问题。在我的hermite方法中,我对一个微分方程进行时间步进,我使用(15-(-15))/100作为时间步间隔,python将该值限定为0,因此它无限期运行。程序在调试器中工作的原因是,我将时间步长强制为非零值,以使执行时间变小。无论如何,感谢所有看到这一切的人
def hermite(a,b,c):
pdb.set_trace()
.... (stuff here)