如何通过GDB'中的挂钩检测GDB退出;s mi解释器模式?
我在“mi解释器”模式下运行GDB,并使用用户定义的挂钩来检测停止、退出等事件 每当事件发生时,钩子就会打印一些信息,这些信息被重定向到不同的日志文件 另一个应用程序将从该日志文件中读取内容并对其进行处理 我编写了一个钩子来检测GDB退出,如图所示:如何通过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的控制台模式下,当
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库: