你如何退出 PDB /和/终止程序?
How do you exit PDB /and/ kill the program?
您如何终止 PDB 及其 运行 的程序,类似于 LLDB 的 proc kill; exit
或 exit (y)
命令?
Ctrl+D 不起作用,我在这里看到的所有问题都是如何在保持程序退出的同时退出 运行。然而,我正坐在一个 PDB 会话中,我发现了一个导致无限循环的错误,虽然我确实可以做其他事情来终止程序,但我想我会问 PDB 命令是做什么的.
杀死程序的pdb命令是q
,或者quit
。引用 docs:
q(uit)
Quit from the debugger. The program being executed is aborted.
当 q
不足以停止循环时(也许你有一个行为不当的 except
块),你可能需要使用 os._exit()
,一个终止循环的低级命令立即处理。 (q
和 sys.exit
通过抛出异常来工作 - bdb.BdbQuit
用于 q
和 SystemExit
用于 sys.exit
。) os._exit
将阻止任何来自 运行 的 finally
个块或 __exit__
个方法,因此您可能不得不处理数据损坏或数据丢失的问题。
例如:import os; os._exit(0)
()
您如何终止 PDB 及其 运行 的程序,类似于 LLDB 的 proc kill; exit
或 exit (y)
命令?
Ctrl+D 不起作用,我在这里看到的所有问题都是如何在保持程序退出的同时退出 运行。然而,我正坐在一个 PDB 会话中,我发现了一个导致无限循环的错误,虽然我确实可以做其他事情来终止程序,但我想我会问 PDB 命令是做什么的.
杀死程序的pdb命令是q
,或者quit
。引用 docs:
q(uit)
Quit from the debugger. The program being executed is aborted.
当 q
不足以停止循环时(也许你有一个行为不当的 except
块),你可能需要使用 os._exit()
,一个终止循环的低级命令立即处理。 (q
和 sys.exit
通过抛出异常来工作 - bdb.BdbQuit
用于 q
和 SystemExit
用于 sys.exit
。) os._exit
将阻止任何来自 运行 的 finally
个块或 __exit__
个方法,因此您可能不得不处理数据损坏或数据丢失的问题。
例如:import os; os._exit(0)
(