我一直在为这件事抓狂。我在网上搜索过,似乎找不到解决问题的办法。我尝试使用python的gdb模块自动测试一些代码。我可以执行基本的命令,除了停止在后台运行的进程外,一切都正常。目前,我在后台继续我的程序后,中断点如下:
gdb.execute("c&")
然后我与正在运行的程序交互,读取不同的常量值并从程序中获得响应。
接下来,我需要获取一块内存,以便运行以下命令:
gdb.execute("interrupt") #Pause execution
gdb.execute("dump binary memory montiormem.bin 0x0 (&__etext + 4)") #dump memory to file
但是当我运行内存转储时,我得到一个错误消息,说在目标运行时命令不能运行,在错误发生后,中断命令运行并且目标被暂停,然后我可以从gdb控制台窗口运行内存转储。在
不久前我发现了一个类似的问题,似乎没有得到答案here。在
我用的是python2.7。在
我还发现了这个链接,它似乎是issue,但没有迹象表明它是否在我的gdb构建中(这似乎不太可能)。在
我只是在编写一些自动化测试脚本时遇到了同样的问题。我注意到'interrupt'命令直到当前脚本退出后才会停止应用程序。在
不幸的是,这意味着您需要在引起中断的任何时候对脚本进行分段。在
脚本1:
脚本2:
^{pr2}$相关问题 更多 >
编程相关推荐