如何在gdb-python中退出python脚本?

时间:2016-07-04 12:20:34

标签: python-2.7 gdb-python

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

2 个答案:

答案 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