如何通过GDB'中的挂钩检测GDB退出;s mi解释器模式?

如何通过GDB'中的挂钩检测GDB退出;s mi解释器模式?,gdb,Gdb,我在“mi解释器”模式下运行GDB,并使用用户定义的挂钩来检测停止、退出等事件 每当事件发生时,钩子就会打印一些信息,这些信息被重定向到不同的日志文件 另一个应用程序将从该日志文件中读取内容并对其进行处理 我编写了一个钩子来检测GDB退出,如图所示: define hook-quit set logging file D:\log\task.log set logging on print "GDB end detected" set logging off end 在GDB的控制台模式下,当

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

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

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

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

define hook-quit
set logging file D:\log\task.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的任何层中,要么编写一个调用gdb的包装器脚本,然后在gdb退出时写入日志。

Tom,你能提供一个Python示例吗?在文档中很难找到它。我只是指通常的python库: