python - gdb 内的 ipython shell

标签 python gdb

我创建了一个 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/

相关文章:

惰性可调用的 Python 依赖注入(inject)

python - 通过某些(索引)参数将值插入 Pandas 数据框中的 "proper"位置的最佳方法是什么?

c++ - GDB——尝试定位本地主机时为 "Operation not permitted"

gdb - 调试 Travis CI 进程?

gdb - 核心转储注释部分

c++ - 是否可以使用 GDB 查看未命名的框架/函数参数?

python - 保存 Selenium 的当前状态

python - Pandas - 检查数据框在任何列中是否具有负值

python - 通过磁条索引输入信用卡

c++ - std::string 是全局变量时不能在 gdb 中打印,为什么?