我正在编写python脚本来调试运行在ARM芯片上的嵌入式软件。在
为此,我使用pygdbmi python库。这个库允许我配置和启动脚本,但是有一个特性我找不到:我找不到暂停程序执行的方法。在
我想先执行我调试的软件一段时间(比如1秒),然后再挂起它来检查全局变量值等。为此,我想发送“continue”到gdb来运行我的程序,然后休眠1秒,最后发送“-exec interrupt”来挂起程序并向gdb发送新命令。在
下面是我使用的部分源代码:
gdbmi = GdbController("arm-none-eabi-gdb")
# swPath is the path to my software binary
gdbmi.write('-file-exec-and-symbols %s' % swPath)
# I have to connect to an openOCD server
gdbmi.write('tar rem :3333')
gdbmi.write('monitor reset halt')
gdbmi.write('load')
gdbmi.write('c')
time.sleep(1)
gdbmi.write('-exec-interrupt')
执行此python脚本时,出现以下错误:
^{pr2}$因此,当调试的软件正在运行时,我似乎无法向gdb写入新的命令。在
我该如何暂停我的软件?当我手动使用GDB时,我通过发送Ctrl-C信号(SIGINT)来实现这一点,我希望从python中执行同样的操作。在
嗨,我是
pygdbmi
的开发者。在你能做到的
我想添加一种新方法来实现这一点,比如
send_signal_to_gdb
。在我在github页面上创建了一个问题,并将在下一个版本中添加这些方法:https://github.com/cs01/pygdbmi/issues/26。在
相关问题 更多 >
编程相关推荐