PDB的quit命令通过引发一个异常(Bdb.BdbQuit
)来工作,如果该异常被捕获,除了杀死整个shell之外,我找不到杀死程序的方法,CTRL+C通过引发一个KeyboardInterrupt
异常来工作,该异常也可以被捕获。
您可以使用这个简单的脚本重新创建此问题。
foo = 0
while True:
try:
import pdb; pdb.set_trace()
foo += 1
except:
pass
此脚本无法从PDB中使用退出命令或CTRL+C停止。
我知道这是一个糟糕的编程,你永远不应该使用没有异常类型的except
。我问这个问题是因为我在调试时遇到了这个问题,一个第三方库把我困在了循环中。
2条答案
按热度按时间7tofc5zh1#
您可以尝试使用
os._exit
终止python进程。输出:
igetnqfo2#
为什么不重新引发异常: