2

我正在 GDB(v7.5.1-0.7.29) 中编写一个 python(v2.7) 脚本。当某些条件为假时,我想退出 python 脚本。但我不想退出 GDB。我尝试使用 sys.exit()、exit() 和 quit(),但在这种情况下,它们也会退出 GDB。有什么方法可以退出 python 脚本而不是 gdb。就像 ctrl + c 命令一样,但我希望仅在某个条件为假时才发生这种情况。

4

2 回答 2

1

CTRL+D 这样做

 (gdb) pi
 >>>        [Press CTRL+D] 
 (gdb) 
于 2016-08-19T19:20:53.517 回答
0

你必须提出一个例外。问题是要提出什么例外;您是否提供代码来捕获它以及是否要打印回溯。

如果您不介意要打印回溯,您可以raise KeyboardInterrupt. 但我想你想要优雅退出而不回溯。

如果您正在为集成到 GDB 命令中的类编写代码,那么您可以raise gdb.GdbError. 它将由实现命令类的代码使用,并且不会打印回溯。

如果您正在编写一个通过采购来执行的脚本,那么您必须将整个脚本嵌入try/except并捕获您正在引发的异常。事实上,调用exit()也会简单地引发异常SystemExit,因此您可以将脚本编写为:

try:
    some code
    if some_condition:
        exit()
    some more code
except SystemExit:
    pass
于 2021-02-12T13:23:37.567 回答