如何杀死PDB及其运行的程序,类似于LLDB的proc kill; exit
或exit (y)
命令?
Ctrl + D 还没有工作,我在这里看到的所有问题都是如何在保持程序运行的同时退出。但是,我正坐在一个PDB会话中,我发现了一个导致无限循环的错误,虽然我确实可以采取其他措施来杀死该程序,但我还是想知道PDB命令是什么就是这样做。
答案 0 :(得分:8)
杀死程序的pdb命令为q
或quit
。引用docs:
q(uit)
从调试器退出。正在执行的程序被中止。
如果q
不足以停止循环(也许您对except
的操作不正确),则可能需要使用os._exit()
这是一个低级命令来终止进程立即。 (q
和sys.exit
通过抛出异常来工作-bdb.BdbQuit
的{{1}}和q
的{{1}}。)SystemExit
将防止任何异常sys.exit
块或os._exit
方法无法运行,因此您可能不得不处理数据损坏或数据丢失的情况。
例如:finally