Python 2.7 如何使用GDB编辑python 2.7全局变量?
我有一个脚本已经运行了好几天,大约完成了一半。它有一个愚蠢的bug,如果某个计数器太高,它会在完成之前崩溃(计数器没有使用;我不介意弄坏它以保持脚本运行)。我没有远见导入一个模块或编写一个后门来让我以任何方式改变状态;有人告诉我,我仍然可以使用gdb到达柜台 为了简单起见,想象一下,我在下面讨论的是这个脚本,我从命令行以“python foo.py”的形式运行它Python 2.7 如何使用GDB编辑python 2.7全局变量?,python-2.7,Python 2.7,我有一个脚本已经运行了好几天,大约完成了一半。它有一个愚蠢的bug,如果某个计数器太高,它会在完成之前崩溃(计数器没有使用;我不介意弄坏它以保持脚本运行)。我没有远见导入一个模块或编写一个后门来让我以任何方式改变状态;有人告诉我,我仍然可以使用gdb到达柜台 为了简单起见,想象一下,我在下面讨论的是这个脚本,我从命令行以“python foo.py”的形式运行它 为了将变量I的值更改为0并避免爆炸,我需要不时在gdb中输入什么?(如果有必要的话,我的python二进制代码是2.7.3)。继续前进
为了将变量I的值更改为0并避免爆炸,我需要不时在gdb中输入什么?(如果有必要的话,我的python二进制代码是2.7.3)。继续前进,我自己完成了。这对我来说很有用(没有显示-‘file’从进程加载python二进制文件‘attach’;‘detach’):
*(PyDictObject*)全局文件)
-确认
有变量吗然而,为了成功,我认为必须在开始运行python进程之前安装/设置python2.7-gdb,否则gdb会看到一个混乱的堆栈。我自己完成了。这对我来说很有用(没有显示-‘file’从进程加载python二进制文件‘attach’;‘detach’):
*(PyDictObject*)全局文件)
-确认
有变量吗from time import sleep
i = 0
while(True):
i += 1
if (i > 100):
raise Exception("Explosion")
sleep(10)