我在“mi interpreter”模式下运行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 --interpreter = mi D:\ test.elf)
答案 0 :(得分:1)
有几种方法可以解决这个问题。
一种是使用Python在“退出”钩子上写入打印到日志。应该在gdb退出期间运行Python出口挂钩。
另一种方法是在另一层进行编写:无论是调用gdb -i=mi
还是编写调用gdb的包装脚本,然后在gdb退出时写入日志。