我一直在为这个问题撕扯我的头发。 我在网上搜索了一下,似乎没有找到解决问题的办法。 我试图用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 .
I'm using python2.7.
我还发现了这个链接,它似乎是 issue 但没有迹象表明它是否在我的gdb构建中(这似乎不太可能)。