如何使用pdb运行程序并在遇到错误时暂停?
使用 python
解释器和/或 pdb
,我们能否在程序运行时遇到错误就暂停,这样我就可以查看程序崩溃时的调用栈的所有帧?
当我直接在 python
解释器中运行程序时,遇到错误时,它会告诉我出错的代码行在哪里,但似乎总是返回到最上面的帧,这样我就无法查看实际出错的帧。例如:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test.py", line 194, in <module>
addlevel(root_toc, 0)
File "test.py", line 191, in addlevel
addlevel(child, root_level+1)
File "test.py", line 188, in addlevel
root.value.append(root_level)
AttributeError: 'str' object has no attribute 'append'
>>> root_level
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'root_level' is not defined
错误发生在最底层的帧,而我无法查看那个帧中 root_level
的值。这是因为在错误发生后它返回到最上面的帧吗?我该如何查看最底层的帧呢?
谢谢。