我正在GDB中编写一个python(v2.7)脚本(v7.5.1-0.7.29)。我想在某些条件变为false时退出python脚本。但我不想退出GDB。我尝试使用sys.exit(),exit()和quit(),但在这种情况下,他们也退出了GDB。有没有办法只退出python脚本而不是gdb。像ctrl + c命令一样但我希望只有当某个条件变为false时才会发生这种情况。
答案 0 :(得分:0)
CTRL + D就是这样做
(gdb) pi
>>> [Press CTRL+D]
(gdb)
答案 1 :(得分:0)
您必须引发异常。问题是要引发什么异常;是否提供捕获它的代码以及是否要打印回溯。
如果您不介意打印回溯,您可以raise KeyboardInterrupt
。但我认为您希望在没有回溯的情况下优雅退出。
如果您正在为集成到 GDB 命令的类编写代码,那么您可以raise gdb.GdbError
。它将被实现命令类的代码使用,并且不会打印回溯。
如果您正在编写一个通过采购来执行的脚本,那么您必须将整个脚本嵌入到 try
/ except
中并捕获您正在引发的异常。事实上,调用 exit()
也只会引发异常 SystemExit
,因此您可以将脚本编写为:
try:
some code
if some_condition:
exit()
some more code
except SystemExit:
pass