我创建了一个 python 脚本来启动 python 控制台“pythonstart.py”
导入系统
导入子流程
subprocess.call(['/usr/bin/python'])
我从 gdb 内部获取它
gdb# 源 pythonstart.py
它提供了一个 python 控制台。
问题:当我从 python 控制台退出时,它返回到 gdb,如果我再次按“ENTER”,它会再次返回到 python 控制台。 我不确定为什么会发生。一旦我退出了 python 控制台,为什么它又回来了。
还有一种情况:退出python后,如果我不在gdb上按“ENTER”,而是执行任何命令然后按“ENTER”,则不会出现问题。
(gdb)
(gdb) source pythonstart.py
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>> exit()
(gdb) <---- Pressing Enter here
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
我想阻止它在按回车键后回退到 python 控制台。请帮忙。
最佳答案
输入命令行后,gdb 会保存它。如果您只输入一个空行,gdb re-executes保存的命令(如果有)。在您的情况下,输入 ENTER 将重新执行 source pythonstart.py
。
如果命令是脚本,则可以调用gdb命令dont-repeat
,这将清除已保存的命令。
因此,如果您不想使用空行来重新执行源代码
,则可以将gdb.execute("dont-repeat")
添加到Python脚本中命令。
关于python - gdb 内的 ipython shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36305129/