如何在 GDB 的 mi 解释器模式下通过钩子检测 GDB 退出?

  • 本文关键字:GDB 退出 mi 模式 解释器 gdb
  • 更新时间 :
  • 英文 :


我在"mi解释器"模式下运行GDB,我使用用户定义的挂钩来检测诸如停止、退出等事件。

每当事件发生时,钩子都会打印一些信息,这些信息被重定向到不同的日志文件。

另一个应用程序将读取此日志文件中的内容并对其进行处理

我写了一个钩子来检测GDB退出,如图所示:

define hook-quit
set logging file D:logtask.log
set logging on
print "GDB end detected"
set logging off
end

在GDB的控制台模式下,当GDB退出时,上面的钩子会成功执行。

然而,在GDB的"mi解释器模式"中,钩子无法执行。

是否有任何替代挂钩(或任何方法)来检测"mi解释器模式"下的GDB退出

测试环境:

Windows 7
工具链:arm none-eabi(命令:arm-none-eabi-gdb.exe--解释器=mi D:\test.elf)

我想到了几种方法。

一种是使用Python在打印到日志的"at exit"钩子处进行编写。Python出口挂钩应该在gdb出口期间运行。

另一种是在不同的层进行编写:要么在调用gdb -i=mi的任何层中,要么通过编写一个包装脚本来调用gdb,然后在gdb退出时写入日志。

最新更新