打开python核心转储后调试器中的Python shell

时间:2018-04-09 13:18:52

标签: python gdb coredump

我有一个正在运行的CPython程序的核心转储,并希望在转储进程的上下文中执行Python代码。

我已使用gdb python core-dump-file将核心和解释器加载到gdb中。

我知道python-interactive,但它无法看到上下文(例如:import sys; sys.modules没有给我任何进程的模块)

我该怎么做?

如果这是唯一可行的方式,我不介意调用CPython的C函数。

1 个答案:

答案 0 :(得分:0)

1)首先检查您的gdb是否已使用源代码中的python构建。

您可以通过以下方式(在gdb提示符下)执行此操作:

(gdb) python print("Hi from python")

如果要检查系统中的python版本,请尝试:

(gdb) python import sys
(gdb) python print(sys.version)

如果这些命令失败。这可能意味着您的gdb从来就没有建立过python支持。

您应该从源代码构建gdb,然后在配置步骤中添加--with-python =“通往python的路径”

例如

./configure --with-python=/usr/bin/python36

希望这会有所帮助!